Salut à tous,
Me revoilà avec un autre exercice en langage C pour lequel j'ai un petit soucis.
DA : L'utilisateur entre une chaîne de caractères (code) ainsi qu'un caractère dans la variable (c), le programme affiche la longueur de la chaîne et le nombre d’occurrences du caractère (c) rentré par l'utilisateur. Utilisez 2 fonctions !
Problème : le programme renvoie toujours '6' pour la longueur, quelque soit la chaîne rentrée dans (code) et si j'ajoute la boucle pour compter les occurrences le programme refuse de fonctionner. Blocage au niveau de l'utilisation de strcmp. Comment procéder pour comparer un caractère à ceux d'une chaîne un par un ? J'ai essayer avec une boucle while et un compteur mais sans succès.
Voici mon code :
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> int fonction(char[]); void sortie(int,char,int,char[]); int main(void) { char c,code[15]; int length,fois=0; printf("\nEntrez le code chaine : "); fflush(stdin); code[15]=getchar(); printf("\n\nEntrez un caractere : "); fflush(stdin); c=getchar(); printf("\n%c",c); fflush(stdin); length=fonction(code); sortie(length,c,fois,code); } int fonction(char code[]) { int length=0; length=strlen(code); return length; } void sortie(int length,char c,int fois,char code[]) { // Problème à ce niveau ... Comment compter le nombre d'occurrences du caractère variable c entrée par l'utilisateur ? int i=0; while(i<15) { if(strcmp(c,code[i])==0) { fois++; i++; } else { i++; } } printf("\nLongeur de la chaine : %d",length); printf("\nLe caractere %c apparait %d fois dans la chaine.\n",c,fois); }
-----