- 締切済み
ポインタ配列
*name[] = {"ai", "ueo", "kaki", "kukeko"}; もし*name[0]がaiだったらaiをprintfというようにするにはどうすれば良いのでしょう? if(****** == "ai") { printf("%s", name[0]); } という具合にしたいんです。 違う配列に a[3]="ai"; とかにして比較して同じだったらprintfは出来るんですけど、すっきりしないので・・・。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Kenichi31980
- ベストアンサー率46% (7/15)
回答No.2
まず、複数の文字列の配列によるアクセスについてまとめてみます。 ひとつであれば、 char* a = "ai"; 複数であれば、 文字へのポインタの集合なのでchar* を配列化すればよいです。 char* name[] = {"ai","ueo","kaki","kukeko"}; printf("%s\n",name[0]); とすれば ai と表示できると思います。 次に、任意の文字列が、この集合に含まれているかの判定ですが strcmp関数を利用するのがよいと思います。 for(i = 0; i<4; i++){ if(strcmp(str,name[i]) == 0) printf("%s\n",name[i]); } こんな感じでしょうか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
>if(****** == "ai") { if(strcmp(name[0],"ai")==0){