Ich habe eine Funktion geschrieben, um zu überprüfen, ob zwei Strings gleich sind oder nicht.Pointer Integer Character Warnung in 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++;
}
}
Es funktioniert ordnungsgemäß. Aber der GCC-Compiler gibt einige Warnungen, die ich nicht bekommen habe.
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") {
^
Auch beim Scannen und Speichern einer Zeichenfolge,
char operation[8];
scanf ("%s", &operation);
Ich bin immer noch ein Fehler, die ich nicht bekommen.
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);
^
Kann jemand erklären, was diese Fehler sind?
Sie meinen, ich sollte scanf schreiben ("% s", & Operation [0]); ? – rohit15079