C'est un gars qui traine sur le forum...
C'est juste parce qu'il y a un concours entre Taz et moi sur ce qui est accepté par le standard du C/C++ et ce qui est mal.
En l'occurence, "for(char c='a'; c!='z'+1; ++c)" suppose que les caractères 'a' à 'z' sont adjacents et en ordre croissant en mémoire, ce qui n'est nullement garanti.
Bon, on va faire comme si...
Un caractère 'a' utilisé comme son code (65 en ASCII/ANSI) dans la table de caractères, c'est tout à fait standard, et très fortement préférable aux code supposé en littéral.
Il est peu probable que tu aie vraiment besoin d'une boucle pour parcourir l'alphabet.
Code :
- for (i=0; i<=longueur_de_chaine; i++){
- switch(chaine[i]){
- case 'a':
- case 'e':
- case 'i':
- case 'o':
- case 'u': puts("Voyelle" );
- break;
- case 'b':
- //...
- case 'z': puts("Consonne" );
- break;
- default: puts("Pas une lettre" );
- }
- }
|
Code :
- for (i=0; i<=longueur_de_chaine; i++){
- if(strchr("aeiou" , chaine[i]) != NULL){ puts("Voyelle" ); }
- else if(strchr("bcdfghjklmnpqrstvwxyz", chaine[i]) != NULL){ puts("Consonne" ); }
- else { puts("Pas une lettre" ); }
- }
|
Compter les occurences:
Code :
- #include <limits.h>
- int compteurs[CHARMAX]= {};
- for (i=0; i<=longueur_de_chaine; i++)
- compteurs[chaine[i]]++;
|
Position d'une lettre dans l'alphabet:
Code :
- #include <ctype.h>
- int indexalphabetique(char c){
- //assert(c>='a' && c<='z');
- return tolower(c)-'a'; //+1 pour compter à partie de 1
- }
|
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone