online: 13; azi: 816; total: 51271 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 citeşte un text de la tastatură, format dintr-o singură propoziție. Se consideră că separarea cuvintelor se face prin cel puţin un spațiu. Afişaţi numarul de cuvinte din text şi apoi, fiecare cuvânt, pe câte un rând. Eliminaţi din text spatiile suplimentare si afişați textul.
# include < iostream >
# include < string >
# include < cstdlib >
using namespace std ;
int main () {
string text;
int numarCuvinte = 0 ;
cout << " Introduceti textul: " ;
getline (cin, text);
// calculam numarul de cuvinte si afisam fiecare cuvant pe un rand
for ( int i = 0 ; i < text. length (); i++) {
if (text[i] != ' ' ) {
// daca am gasit primul caracter al unui cuvant
if (i == 0 || text[i - 1 ] == ' ' ) {
numarCuvinte ++;
cout << endl ; // afisam cuvantul pe un rand nou
}
cout << text[i];
}
}
// eliminam spatiile suplimentare si afisam textul fara ele
string textFaraSpatii ;
bool aFostSpatiu = false ;
for ( int i = 0 ; i < text. length (); i++) {
if (text[i] != ' ' ) {
textFaraSpatii += text[i];
aFostSpatiu = false ;
} else {
if (! aFostSpatiu ) {
textFaraSpatii += ' ' ;
aFostSpatiu = true ;
}
}
}
cout << "\ nNumarul de cuvinte din text: " << numarCuvinte << endl ;
cout << "Textul fara spatii suplimentare: " << textFaraSpatii << endl ;
system ( " pause " ); // asteptam apasarea unei taste
return 0 ;
}

Explicație: