Tout d'abord, en C, les noms de variables ne peut pas commencer par un chiffre, ou être un numéro pour cette question. Donc, la déclaration de int 1,2,3,4,5,6,7 ne compilera pas, ainsi que char 3;
Voici un exemple de la façon dont vous pourriez le faire en supposant que l'entrée est une valeur nulle chaîne terminée:
int matches(char *input){
int i;
/* This array contains 1 in places where a digit is expected */
char expected_digits[] = {1,1,0,1,1,1,1};
for(i = 0 ; input[i] != 0 && i < 7; i++){
if(expected_digits[i] == 1){
if(!isdigit(input[i])){
return 0;
}
}
else{
if(!isalpha(input[i]))
{
return 0;
}
}
}
if(i == 7) {
/* We reached the end of the input string and all its places matched */
return 1;
}
else{
return 0;
}
}
Pas le meilleur morceau de code, mais devrait faire l'affaire. Et il devrait compiler avec un compilateur C.
Vous ne pouvez pas utiliser les chiffres comme noms de variables. –
Les erreurs partout peuvent provenir du fait que vous essayez de déclarer des variables avec des noms comme '1' - cela ne va pas fonctionner si bien. De plus, le '% d' dans scanf ne correspond pas à un chiffre, il correspond à un entier entier. Pour la vraie réponse, cependant, regardez un de ces personnages caractère par caractère là-bas. – Cascabel
Imaginez que ces noms de variables numériques soient des noms réels et essayez de comprendre la logique derrière les 2 lignes suivantes: o – Blindy