Classement liste de mots

Contenu du snippet

c'est ma premiere source développée sous borland C++ version 6, elle sert juste a classer une liste de mots en donnant quelques statistiques globales, un screen y est attaché pour le resultat que donne la source. Quelque conseils pourraient etre la bienvenue sur la façon de faire, s'il y avait plus simple, sur la claretée commentaires. voila merci.

Source / Exemple :


//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
   //initialisation des variables
   char ligne[100];
   int i=0,j=0,compte[20],espace=20,maxi=0,mini=100;
   compte[j]=0;

   cout<<"entrer une ligne de 100 caracteres maxi : "<<endl;
   //pour rentrer les carractères qui se rangeront dans le tableau ligne
   cin.getline(ligne,100);
   cout<<endl;

   //boucle tant que le carractère testé n'est pas egale a \0 avec i=0 au
   //premier passage
   while(ligne[i]!='\0'){

      //si le carractère est égale à ' le remplacer par un espace
      if(ligne[i]=='\'') ligne[i]=' ';

      //si le carractère est different d'un espace et different de \0
      //afficher le carractère et incrémenter la valeur du tableau compte
      //correspondant au nombre de carractère de chaque mot
      if(ligne[i]!=' ') { cout<<ligne[i]; compte[j]++; }
      else { //sinon afficher le nombre de carractères du mot
         if(compte[j]>1) cout<<setw(espace-compte[j])<<"mot de "<<compte[j]<<" caracteres"<<endl;
         else cout<<setw(espace-compte[j])<<"mot de "<<compte[j]<<" caractere"<<endl;
         j++; //incrémenter j pour passer au mot suivant
         compte[j]=0; //initialiser cette valeur à 0
      }
      i++; //incrémenter i

      //si le carractère est égale à "," ";" "." "?" incrémenter la variable i
      if((ligne[i]==',')||(ligne[i]==';')||(ligne[i]=='.')||(ligne[i]=='?')){
         i++;
      }

   }
   if(compte[j]>1) cout<<setw(espace-compte[j])<<"mot de "<<compte[j]<<" caracteres"<<endl;
   else cout<<setw(espace-compte[j])<<"mot de "<<compte[j]<<" caractere"<<endl;
   j++;

   //affichage du nombre de mots
   if(j>1) cout<<endl<<"Cette phrase comporte "<<j<<" mots"<<endl;
   else cout<<endl<<"Cette phrase comporte "<<j<<" mot"<<endl;

   //boucle permettant de caluculer le mot le plus long et le mot le plus court
   for(i=0;i<j;i++){
      if(compte[i]>maxi) maxi=compte[i];
      if(compte[i]<mini) mini=compte[i];
   }
   //affichage du mot le plus long et du mot le plus court
   if(mini>1) cout<<endl<<"le mot le plus court possede : "<<mini<<" lettres"<<endl;
   else cout<<endl<<"le mot le plus court possede : "<<mini<<" lettre"<<endl;
   if(maxi>1) cout<<"le mot le plus long possede : "<<maxi<<" lettres"<<endl;
   else cout<<"le mot le plus long possede : "<<maxi<<" lettre"<<endl;

   cout<<endl<<endl;
   system("pause");
   return 0;
}
//---------------------------------------------------------------------------

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.