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

CLASA a X-a

Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se determine numărul de cuvinte din șir în care apare litera a.


lozanalex: In ce limbaj Pascal sau c++?

Răspunsuri la întrebare

Răspuns de lozanalex
0
#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;
}

bool existaA(string s){
    for (int i=0; i<s.size(); i++)
        if (s[i]=='a') return true;
    return false;
}

int main(){
    string s;
    getline(cin,s);
    vector <string> w;
    w=words(s);
    int c=0;
    for (int i=0; i<w.size(); i++)
    {
        if (existaA(w[i])) c++;
    }
    cout << c ;
return 0;
}

si varianta pentru Pascal

var w:array [1..1000] of string;
i,c,wl:integer; s:string;

procedure words(s:string);
var i:integer; x:string;
begin
  s:=s+' ';
  for i:=1 to length(s) do
  begin
    if (s[i]<>' ') then x:=x+s[i];
    if (s[i]=' ') then
    begin
      wl:=wl+1;
      w[wl]:=x;
      x:='';
    end;
  end;
end;

function existaA(s:string):boolean;
var i:integer; b:boolean;
begin
  b:=false;
  for i:=1 to length(s) do
    if (s[i]='a') then b:=true;
  existaA:=b;
end;

begin
  readln(s);
  words(s);
  for i:=1 to wl do
    if (existaA(w[i])) then c:=c+1;
  write(c);
end.
Alte întrebări interesante