Chaines de caracteres
Résolu
chimou-gaga
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
chimou-gaga Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
chimou-gaga Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je commence à manipuler les chaines en programmation C,
Je souhaite calculer le nombre des chiffres, lettres et symboles dans une chaine de caractere.
j'ai essayé ça mais ça ne marche pas :
Il y en a 6 erreurs que je ne sais pas comment corriger. et je me demande si le teste par les intervalles in [] est correcte ou pas.
Merci d'avance.
Je commence à manipuler les chaines en programmation C,
Je souhaite calculer le nombre des chiffres, lettres et symboles dans une chaine de caractere.
j'ai essayé ça mais ça ne marche pas :
#include <stdio.h> #include <string.h> void main () { int nchiffre, nlettre , autre,longueur,i; char chaine[100]; /*introduire la chaine*/ printf ("introduire une chaine"); scanf_s(chaine); /*stocker la longeure de la chaine*/ longueur =strlen(chaine); /*initialistation des compteurs*/ nchiffre=0;nlettre=0;autre=0; /*parcourir la chaine et test sur chaque caractere*/ for (i=0;i<longueur;i++) { if chaine[i] in ["0".."9"] { nchiffre = nchiffre+1; }; else if chaine[i] in ["a".."z"] { nlettre= nlettre+1; }; else autre=autre+1; }; printf ("le nombre des chiffres est %d ,le nombre des lettres est %d et le nombre des symboles est %d",nchiffre,nlettre,autre); }
Il y en a 6 erreurs que je ne sais pas comment corriger. et je me demande si le teste par les intervalles in [] est correcte ou pas.
Merci d'avance.
A voir également:
- Chaines de caracteres
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Caracteres speciaux - Guide
1 réponse
Salut,
Eh, il va falloir que tu revois la syntaxe du C ^^. On ne met pas de point virgule après les accolades d'une structure. De plus, je ne crois pas que le test sur les intervalles existent en C... Et puis les caractères s'écrivent entre deux apostrophes. Et on met des parenthèses après un if. Et ...
Bon, en fait cela donne plutôt :
Regarde ce que ça donne avec ça, essaie de comprendre tes erreurs...
Eh, il va falloir que tu revois la syntaxe du C ^^. On ne met pas de point virgule après les accolades d'une structure. De plus, je ne crois pas que le test sur les intervalles existent en C... Et puis les caractères s'écrivent entre deux apostrophes. Et on met des parenthèses après un if. Et ...
Bon, en fait cela donne plutôt :
if('0' <= chaine[i] && chaine[i] <= '9') // voilà une syntaxe le compilateur appréciera ;) { nchiffre++; // C'est plus simple d'incrémenter une variable ainsi }// pas de point ';' ici else if ('a' <= chaine[i] && chaine[i] <= 'z') { nlettre++; } // pas de ';' ici non plus else autre++;
Regarde ce que ça donne avec ça, essaie de comprendre tes erreurs...
Au fait, parfois le compilateur me demande d'ajouter des points virgules apres les accolades.
Finalement, il reste encore une erreur au niveau de longueur =strlen(chaine);
Je suspecte la fonction scan_s, que je n'ai jamais vu. A ta place j'utiliserais plutôt : scanf("%s", chaine);