Cours:TabCharCorrection : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 19 : Ligne 19 :
 
         if (message[i-1]==' ') toUppperCase(message[i]);
 
         if (message[i-1]==' ') toUppperCase(message[i]);
 
     }
 
     }
 +
}
 +
 +
void histogramme(char message[])
 +
{
 +
    int nbOccurenceLettres[26];
 +
    for (int i=0;i<26;i++) nbOccurenceLettres[i]=0;
 +
    for (int i=0;i<strlen(message);i++)
 +
    {
 +
        if ((message[i]>='a')and(message[i]<='z')) nbOccurenceLettres[message[i]-'a']++;
 +
        if ((message[i]>='A')and(message[i]<='Z')) nbOccurenceLettres[message[i]-'A']++;
 +
    }
 +
   
 +
    for (int i=0;i<26;i++) cout << (char) (i+'a') <<" : "<<nbOccurenceLettres[i]<<" ";
 +
    cout <<endl;
 
}
 
}
  
Ligne 24 : Ligne 38 :
 
{
 
{
 
     char saisie[100];
 
     char saisie[100];
 +
    //lecture d'une ligne :
 
     cout << "saisir un message :";
 
     cout << "saisir un message :";
 
     cin.getline(saisie,100);
 
     cin.getline(saisie,100);
 
     upperFirstLetter(saisie);
 
     upperFirstLetter(saisie);
 
     cout << saisie<<endl;
 
     cout << saisie<<endl;
 +
    histogramme(saisie);
  
 
     return 0;
 
     return 0;
 
}
 
}
 +
 
</source>
 
</source>

Version du 4 décembre 2022 à 20:24

Il s’agit d’une page protégée.

#include <iostream>
#include <string.h>

using namespace std;

void toUppperCase(char & c) // passage par référence
{
    if ((c>='a')and(c<='z')) c-=32;
}

void upperFirstLetter(char message[]) // passage par pointeur : un tableau se comporte de façon analogue à un pointeur
{
    toUppperCase(message[0]);
    for (int i=1;i<strlen(message);i++)
    {
        if (message[i-1]==' ') toUppperCase(message[i]);
    }
}

void histogramme(char message[])
{
    int nbOccurenceLettres[26];
    for (int i=0;i<26;i++) nbOccurenceLettres[i]=0;
    for (int i=0;i<strlen(message);i++)
    {
        if ((message[i]>='a')and(message[i]<='z')) nbOccurenceLettres[message[i]-'a']++;
        if ((message[i]>='A')and(message[i]<='Z')) nbOccurenceLettres[message[i]-'A']++;
    }
    
    for (int i=0;i<26;i++) cout << (char) (i+'a') <<" : "<<nbOccurenceLettres[i]<<" ";
    cout <<endl;
}

int main()
{
    char saisie[100];
    //lecture d'une ligne :
    cout << "saisir un message :";
    cin.getline(saisie,100);
    upperFirstLetter(saisie);
    cout << saisie<<endl;
    histogramme(saisie);

    return 0;
}