online: 5; azi: 434; total: 50889 Manual clasa a x a - Implementarea structurilor de date - Pointeri si siruri de caractere

Manual clasa a X a

Implementarea structurilor de date

Pointeri si siruri de caractere

Se introduce un text de la tastatură. Să se afişeze numărul literelor distincte din text şi de câte ori apar ele în text. Se va ține cont de diferența dintre literele mari şi literele mici.
# include < iostream >
using namespace std ;
int main () {
char text[ 1000 ], litereDistincte [ 100 ];
int frecventa[ 100 ] = { 0 }, nrLitDist = 0 ;
cout << " Introduceti textul: " ;
cin. getline (text, 1000 );
// eliminam spatiile si semnele de punctuatie
for ( int i = 0 ; text[i] != '\0' ; i++) {
if ((text[i] >= 'a' && text[i] <= 'z' ) || (text[i] >= 'A' && text[i] <= 'Z' )) {
// convertim literele mari in litere mici
if (text[i] >= 'A' && text[i] <= 'Z' ) {
text[i] = text[i] - 'A' + 'a' ;
}
// verificam daca litera exista deja in litereDistincte
bool gasit = false ;
for ( int j = 0 ; j < nrLitDist ; j++) {
if (text[i] == litereDistincte [j]) {
gasit = true ;
frecventa[j]++;
break ;
}
}
// daca litera nu exista, o adaugam in litereDistincte
if (! gasit ) {
litereDistincte [ nrLitDist ] = text[i];
frecventa[ nrLitDist ] = 1 ;
nrLitDist ++;
}
}
}
// afisam numarul de litere distincte si frecventa lor
cout << "\ nNumarul de litere distincte: " << nrLitDist << endl ;
cout << "Frecventa literelor distincte:\n" ;
for ( int i = 0 ; i < nrLitDist ; i++) {
cout << litereDistincte [i] << " - " << frecventa[i] << endl ;
}
return 0 ;
}