Informatică, întrebare adresată de omcsu, 9 ani în urmă

Se citeste de la tastatura un text dat care contine mai multe propozitii.Cuvintele textului sunt separate prin:spatiu, virgula sau punct.Să se numere câte propoziţii conţine textul, iar fiecare propoziţie, câte cuvinte are.Va multumesc frumos!

Răspunsuri la întrebare

Răspuns de Dennord
1
#include <iostream>
#include <cstring>
using namespace std;
int nrCuv[10005],nrProp,nrC;
char s[10005];
int main()
{
    cin.get(s,10000);
    int n=strlen(s);
    for (int i=1;i<=n;i++)
    {
        if ((s[i]==' ' && s[i-1]!='.' && s[i-1]!=',') || s[i]==',' || s[i]=='.')
            nrC++;
        if (s[i]=='.')
        {
            nrProp++;
            nrCuv[nrProp]=nrC;
            nrC=0;
        }
    }
    cout<<"Sunt "<<nrProp<<" propozitii"<<'\n';
    for (int i=1;i<=nrProp;i++)
        cout<<"Propozitia "<<i<<" are "<<nrCuv[i]<<" cuvinte."<<'\n';
    return 0;
}
Codul asta merge pentru un text de forma: "Ana are mere, dar nu are pere. Daca Maria ii da pere, Ana acum are si mere si pere." Adica, virgula este lipita de ultimul cuvant si are spatiu dupa, iar punctul lipit de ultimul cuvant cu spatiu dupa.


Dennord: Scuze, for-ul este asta: for (int i=0;i<n;i++) { bla bla bla }
omcsu: Mersi
Alte întrebări interesante