fooArray をループして、各エントリで foo を検索し、適切なエントリで fooCount をインクリメントしようとしています。現状の文字列: HAPY \0 は foo と fooArray[2] の両方に正常に入力されますが、fooArray[2] == foo を取得して true に評価することはできません。
これには string.h と strcmp または strstr を使用する必要がありますか?
fooArray[2] == foo が true に評価されないのはなぜですか?
#include <stdio.h>
#include <stdlib.h>
int main(void){
char foo[5] = "HAPY";
static char fooArray[4][5] = {"abc", "123", "HAPY", "some"};
int fooCount[4] = {0};
int n;
printf("size of fooArray: %d\n", ( sizeof(fooArray) / sizeof(fooArray[0])));
for (n = 0; n < sizeof(fooArray) / sizeof(fooArray[0]); n++) {
if (fooArray[n] == foo) {
fooCount[n]++;
break;
}
}
for (n = 0; n < sizeof(fooArray) / sizeof(fooArray[0]); n++)
printf(" fooArray[%d] = %s \n", n, fooArray[n]);
for (n = 0; n < sizeof(fooCount) / sizeof(fooCount[0]); n++)
printf(" fooCount[%d] = %d \n", n, fooCount[n]);
system("pause");
return 0;
}