Warnung: Vergleich zwischen Zeiger und Ganzzahl [standardmäßig aktiviert] in c
Möchte ich überprüfen, ob die Eingabe des Benutzers enthält nur Ziffern oder nicht. Also, ich verwende den folgenden code:
for(i = 0; argv[1][i] != NULL; i++)
if(!isdigit(argv[1][i]))
{
printf("Error");
return -1;
}
Funktioniert es gut, aber ich bekam diese Warnung:
warning: comparison between pointer and integer [enabled by default]
seit argv[1][i]
ist eine Ganzzahl NULL
ist ein Zeiger. Wie kann ich vermeiden, dass solche Warnung?
InformationsquelleAutor Eng.Fouad | 2011-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
NULL
ist nicht das gleiche wie der null-terminator-Charakter. Sollten Sie verwenden'\0'
statt.+1, funktioniert Prima, danke
InformationsquelleAutor Oliver Charlesworth
argv[1][i] ist ein char, nur vergleichen Sie es mit '\0' oder 0, es ist klarer.
InformationsquelleAutor buddhabrot
Für einen Charakter-Vergleich, dies kann verwendet werden (oder eben 0 für diese Angelegenheit);
InformationsquelleAutor Mark Wilkins