Informatică, întrebare adresată de riciyungnhandsum2898, 8 ani în urmă

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 de HACCHACC
1

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.


riciyungnhandsum2898: Salut. Am uitat sa mentionez ca nu e C++ ci C, multumesc pentru raspuns totusi
Alte întrebări interesante