Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 069 fois - Téléchargée 40 fois
#include <iostream> #include <string> using namespace std; struct occurence { int nbrocc; int idem; char lettre; }; occurence nbrocc(string s) { int alpha[255]={0}; // Tableau pour comptabiliser les caracteres for(int i=0;i<(int)s.size();i++) // Pour chaque caractere de la string { for(int b=0;b<255;b++) // Pour chaque caractere ANSI { if(s[i]==(char)32) // Si le caractere est un espace on le neutralise s[i]=0; else if(s[i]==(char)b) // Sinon on l'index alpha[b]++; } } occurence occ={0}; for(int i=0;i<255;i++) { if(alpha[i]>occ.nbrocc) // On recherche le caractere avec le plus d'occurences { occ.nbrocc=alpha[i]; occ.lettre=(char)i; } } for(int i=0;i<255;i++) // On regarde s'il y a des ex-aequo { if((alpha[i]==occ.nbrocc)&&(i!=occ.lettre)) occ.idem++; } return(occ); } int main() { string s1; cout << "Entrez une chaine :\n"; getline(cin,s1); occurence occ=nbrocc(s1); // On initialise une structure avec nbrocc if(occ.idem!=0) // Si il y a des ex-aequo cout << "Plusieurs caracteres sont ex-aequo sur le plus gros nombre d'occurences (" << occ.nbrocc << "), nottamment " << "\"" << occ.lettre << "\"\n"; else cout << "Le caractere ayant le plus d'occurence (" << occ.nbrocc << ") est " << "\"" << occ.lettre << "\"\n"; }
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.