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

Ma poteti ajuta cu un program C.
De la tastatura se citeste un text format din cuvinte separate prin unul sau mai multe spatii. Textl se termina cu caracterul '.' . Sa se determine :
a)Numarul cuvintelor care ancep cu litera 'a'
b)Numarul cuvintelor care se termina cu litera 'b'


lozanalex: Important ce sau e admisibil si C++?
MR32: se poate si c++

Răspunsuri la întrebare

Răspuns de lozanalex
1
#include <vector>
#include <iostream>

using namespace std;

vector <string> words(string s)
{
    vector <string> a;
    string x;    s+=' ';
    for (int i=0; i<s.size(); i++)
    {
        if (s[i]!=' ') x+=s[i];
        if (s[i]==' ' && x!="")
        {
            a.push_back(x);
            x="";
        }
    }
    return a;
}

int main()
{
    string s; int a=0,b=0;
    getline(cin,s);
    if (s[s.size()-2]=='b' || s[s.size()-2]=='B') b++;
    vector <string> w;
    w=words(s);
    for (int i=0; i<w.size(); i++)
    {
        if (w[i][0]=='a' || w[i][0]=='A') a++;
        if (*(w[i].end()-1)=='b' || *(w[i].end()-1)=='B') b++;
    }
    cout << a << ' ' << b;
    return 0;
}
Alte întrebări interesante