0

特定の文字配列を 2 次元配列と比較しようとしていますが、これを行う方法がわかりません。次のコードがあるとします。

char colors[10][4] = {"bla", "bro", "red", "ora", "yel", "gre", "blu", "vio", "gra", "whi"};
char name[11] = "red";

name[] の値が、2 次元配列の色の「行」のいずれかと同じかどうかを確認したい。その場合、どの行が等しいかを返す必要があります。上記のコードでは、red は 2 次元配列の 2 番目の値であるため、2 が返されます。

これは私が試してきたことです:

int x, y;
for(x=0; x<10; x++) {
        if (strncmp(colors, name) == 0) {
              break;
    }
}

そして、理論的には、x の値を取得して、それがどの行からのものかを見つけることができます。明らかにこれは機能しません。:/ ここで何か考えはありますか?

4

3 に答える 3

5

[x]を忘れたと思います:

int x;
for(x=0; x<10; x++) {
        if (strncmp(colors[x], name) == 0) {
              break;
    }
}
于 2013-04-15T22:54:40.077 に答える
1

考えられるエラーが 1 つあります。比較しようとしている色の場所にインデックスを付けていません。

int x, y;
for(x=0; x<10; x++) {
    if (strncmp(colors[x], name) == 0) {
          printf("Found the color %s", name);
          break;
    }
}
于 2013-04-15T22:57:52.283 に答える