avertissement: comparaison entre pointeur et entier [activé par défaut] dans c
Je veux vérifier si la saisie de l'utilisateur ne contient que des chiffres ou pas. Alors, j'utilise le code suivant:
for(i = 0; argv[1][i] != NULL; i++)
if(!isdigit(argv[1][i]))
{
printf("Error");
return -1;
}
Il fonctionne bien, mais j'ai eu cet avertissement:
warning: comparison between pointer and integer [enabled by default]
depuis argv[1][i]
est un Entier et NULL
est un pointeur. Comment puis-je éviter ce genre d'avertissement?
OriginalL'auteur Eng.Fouad | 2011-12-08
Vous devez vous connecter pour publier un commentaire.
NULL
n'est pas le même que le null-caractère de terminaison. Vous devez utiliser'\0'
à la place.+1, beau travail, merci
OriginalL'auteur Oliver Charlesworth
argv[1][i] est un char, il suffit de comparer avec '\0' ou 0, c'est plus clair.
OriginalL'auteur buddhabrot
Pour une comparaison de caractères, ce qui peut être utilisé (ou 0);
OriginalL'auteur Mark Wilkins