A voir également:
- Chaîne de caractères
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Deux caractères manquent dans cette url ✓ - Forum Programmation
- Clavier mac caractères spéciaux - Guide
- Caractères ascii - Guide
- Caracteres speciaux - Guide
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié le 22 nov. 2018 à 11:19
Modifié le 22 nov. 2018 à 11:19
Salut Joujou98,
Chez moi cela marche, une fois que l'on a corrigé ton code en retirant les majuscules mises aux mots clefs du C (qui créeraient des erreurs de compilation, et non à l'exécution).
Sur le plan du style, je te conseille de ne pas utiliser de multiples déclarations sur une ligne, surtout avec des noms de variables comme
donne :
Dal
Chez moi cela marche, une fois que l'on a corrigé ton code en retirant les majuscules mises aux mots clefs du C (qui créeraient des erreurs de compilation, et non à l'exécution).
Sur le plan du style, je te conseille de ne pas utiliser de multiples déclarations sur une ligne, surtout avec des noms de variables comme
I(la lettre L minuscule), qui peut être confondue avec le chiffre 1 ou avec la lettre i majuscule, que tu utilises par ailleurs, de réserver l'usage de capitales pour des constantes littérales définies via
#defineou des
enumet d'améliorer ton indentation. Tu peux aussi alléger le test de la boucle for en testant seulement que la variable est strictement inférieure. J'inclus ci-après un exemple de style corrigé dans une fonction
freqchar_corr()...
#include <stdio.h>
#include <string.h>
int freqchar ( char*M,char C )
{ int nb=0,l ;
l=strlen(M) ;
for( int I=0;I<=l-1;I++)
{ if ( M[I]== C)
nb++ ;
}
return nb ;
}
/* style préférable ci-après */
int freqchar_corr(char * s, char c)
{
int nb = 0;
int len;
len = strlen(s);
for (int i = 0; i < len; i++)
if (s[i] == c)
nb++;
return nb;
}
int main(void)
{
char * s = "ribambelle";
char c = 'e';
printf("il y a %d lettres '%c' dans %s\n",
freqchar(s, c), c, s);
return 0;
}
donne :
$ gcc -Wall 35708267.c
$ ./a.out
il y a 2 lettres 'e' dans ribambelle
$
Dal
22 nov. 2018 à 18:03