EhJeune
Messages postés2Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention22 avril 2005
-
22 avril 2005 à 11:41
EhJeune
Messages postés2Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention22 avril 2005
-
22 avril 2005 à 13:52
Salut,
Voici un prgm pr afficher dans une ligne la fréquence d'apparition des lettres :
#include // cin, cout
#include // setw
#include <string.h> // strlen
#include <ctype.h> // islower, isupper
void main()
{
char line[81]; // ligne de saisie
char let[4] = "aA "; // pour la barre des lettres
int flet[26] = {0}; // fr‚quence des caractŠres
unsigned len; // nombre de caractŠres saisis
int i; // variable de contr“le
cout << "\033[2J\n\n"
"-- DETERMINATION DE LA FREQUENCE DES LETTRES D'UNE CHAINE --"
"\n\nVeuillez taper votre texte "
"(max. 80 caractŠres, terminer par <ENTREE>) :\n\n";
cin.getline(line,81); // lit les caractŠres tap‚s
len = strlen(line); // calcule le nombre de caractŠres tap‚s
for (i = 0; i < len; i++) // examine les caractŠres
{
if(islower(line[i])) // si minuscule
flet[line[i]-'a']++; // met … jour la fr‚quence
else if (isupper(line[i])) // si majuscule
flet[line[i]-'A']++; // met … jour la fr‚quence
}
cout << "\n\n";
for (i = 0; i < 26; i++) // affiche les lettres de l'alphabet
{ // sous forme de barre :
cout << let; // "aA ", "bB " etc.
let[0]++; // caractŠre suivant : a->b, b->c etc.
let[1]++; // caractŠre suivant : A->B, B->C etc.
}
cout << "\n";
for (i = 0; i < 26; i++) // affiche la fr‚quence de chaque
cout << setw(2) << flet[i] << " "; // lettre
}
Je ne comprend pas comment le code en bleu ( pour afficher les lettres aA bB cC ...) fonctionne puisqu'on ne déclare que : char let[4] = "aA ";
Il y a t-il une histoire d'adresse ASCII la-dessous ?
Si quelqu'un pouvait me renseigner, ce serait vraiment sympa...
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 22 avril 2005 à 12:21
for (i = 0; i < 26; i++) // affiche les lettres de l'alphabet
{
// sous forme de barre :
cout <<
let;
// "aA ", "bB " etc.
let[0]++;
// caractŠre suivant : a->b, b->c etc.
let[1]++;
// caractŠre suivant : A->B, B->C etc.
}
et bien a chaque itération il incrémente le code ascii du premier
caractère de let ou le deuxième caractère, si bien qu'il passe en revu
l'ensemble de l'alphabet minuscule et majuscule.