#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
int main() {
char userPassword[20];
printf("Type in your password: \n");
scanf("%c", &userPassword);
if (isalpha(userPassword) == 0) {
printf("Nice");
} else {
printf("Nope");
}
return 0;
}
J'essaie de trouver un code permettant de vérifier si le mot de passe ne contient que des lettres. Pourquoi ce code ne fonctionne qu'avec le signe "== 0". Mon ami m'a dit de mettre ceci et mon code fonctionne. Que fait le "== 0"?Vérification de la valeur de retour de `isalpha`
Si vous ne voulez pas '== 0', essayez' if (isalpha (userPassword)!) ' –
Vous lisez seulement et tests un char, pas une chaîne. – stark
'isalpha' renvoie '0' (faux) si le test échoue, sinon il renvoie une valeur non nulle (vrai) si le test réussit. Donc, utilisez '!' comme suggéré ci-dessus. – Serge