4. Generalizati solutia aferenta problemei 4 din tema precedenta pentru mai multe propozitii (numarul maxim admisibil specificat), stocate intr-o matrice de caractere. Afisati suplimentar numarul de propozitii si textul introdus.
din tema anterioara:
4. Se preia de la consola o propozitie (numarul maxim de caractere impus in prealabil!). Sa se afiseze propozitia si sa se determine:
- numarul de caractere introduse
- numarul de cuvinte (presupuse a fi separate doar prin spatii!)
- numarul de litere a sau A continute in text
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int chr=0, cuv=1, lit=0;
string n;
getline(cin,n);
for(chr=0;chr<n.length();chr++)
{
if(n[chr]==' ')
{
cuv++;
}
if(n[chr]=='A' || n[chr]=='a')
{
lit++;
}
}
cout<<chr<<" "<<cuv<<" "<<lit<<endl;
}
Explicație:
Initializezi valori pentru fiecare variablia ( chr - numarul de caractere, cuv - numarul de cuvinte, lit - numarul de liter). (cuv incepe de la 1, deoarece algoritmul ia in considerare ' ' (spatiu) ca fiind sfarsit de cuvant, prin urmare primul cuvant nu este luat in considerare).
Se citeste sirul de charactere (string este acelasi lucru cu vector de caractere "string = char[]") cu ajutorul comenzi getline(cin, n), cu "cin" vei putea lua doar primul cuvant, pana la " ", cu getline(cin,n), poti lua propoziti cu spatiu.
Parcurgi propozitia litera cu litera, chr stocheaza numarul de litere, apoi verifici daca litera curenta este " ", atunci un cuvant nou este format sau daca litera curenta este "a" sau "A", cresti cu 1 valoarea variabilei lit.
In final afisezi rezultatul.
Pot exista mai multe probleme referitoare la acest exercitiu. Daca nimic nu este introdus, cuvintele afistate vor fi tot 1, iar daca " " este introdus incontinu, vor fi numarate cuvinte ce nu exista , EX: a b, va afisa 5, fiind incorect.