電子書籍の厳選無料作品が豊富!

*name[] = {"ai", "ueo", "kaki", "kukeko"};

もし*name[0]がaiだったらaiをprintfというようにするにはどうすれば良いのでしょう?

if(****** == "ai") {
printf("%s", name[0]);
}

という具合にしたいんです。

違う配列に
a[3]="ai";
とかにして比較して同じだったらprintfは出来るんですけど、すっきりしないので・・・。

よろしくお願いします。

A 回答 (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]);
}
こんな感じでしょうか?
    • good
    • 0

>if(****** == "ai") {


if(strcmp(name[0],"ai")==0){
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!