2つの文字列が同じかどうかを調べる関数を書いています。Cでのポインタ整数文字警告
int sameString (char string1[], char string2[]) {
int i = 0;
while (string1[i] == string2[i]) {
if (string1[i] == "\0" || string2[i] == "\0") {
if (string1[i] == "\0" && string2[i] == "\0") {
return TRUE;
}
else {
return FALSE;
}
}
i++;
}
}
正常に動作しています。しかし、gccコンパイラは私が得られなかったいくつかの警告を出しています。
2.c: In function ‘sameString’:
2.c:10:24: warning: comparison between pointer and integer [enabled by default]
if (string1[i] == "\0" || string2[i] == "\0") {
^
2.c:10:46: warning: comparison between pointer and integer [enabled by default]
if (string1[i] == "\0" || string2[i] == "\0") {
^
2.c:11:28: warning: comparison between pointer and integer [enabled by default]
if (string1[i] == "\0" && string2[i] == "\0") {
^
2.c:11:50: warning: comparison between pointer and integer [enabled by default]
if (string1[i] == "\0" && string2[i] == "\0") {
^
はまた
char operation[8];
scanf ("%s", &operation);
、スキャンし、文字列を保存しながら、私は取得していない1つの以上のエラーを取得しています。
2.c: In function ‘main’:
2.c:65:9: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[8]’ [-Wformat=]
scanf ("%s", &operation);
^
これらのエラーは何か説明できますか?
あなたはscanf( "%s"、&operation [0])と書くべきです。 ? – rohit15079