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

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 modifice șirul dat, astfel încât să se înlocuiască fiecare cuvânt cu exact trei litere din șir cu simbolul *.

Rezolvare


blindseeker90: nu inteleg. Vrei ca fiecare cuvant sa fie inlocuit cu *** sau vrei ca trei caractere din sir sa fie inlocuite cu *? precum Telecomanda schimba canale si daca spun e=* a=* c=* sau am: T*l**om*nd* s*himb* **n*l*
ardyarde: doar cuvintele cu 3 litere sa fie inlocuite cu *
blindseeker90: Mersi de lamuriri ardyarde

Răspunsuri la întrebare

Răspuns de blindseeker90
1
#include <iostream>
#include <string.h>
using namespace std;

int main(){
char s[256],rez[256];
int i,dim_cuvant,dim_rez=0,j;
cout<<"Introduceti sirul:";
cin.getline(s,256);
i=0;
while(i<strlen(s)){
dim_cuvant=0;
while(isalpha(s[i])){
i++;
dim_cuvant++;
}
if(dim_cuvant!=3){
for(j=dim_rez;j<dim_rez+dim_cuvant;j++){
rez[j]=s[i-dim_cuvant+j-dim_rez];
}
dim_rez=dim_rez+dim_cuvant;
}
else{
rez[dim_rez]='*';
dim_rez++;
}
if(i<strlen(s)&&!isalpha(s[i])){
rez[dim_rez]=s[i];
dim_rez++;
i++;
}
}
cout<<"Sirul obtinut: "<<rez;
return 0;
}
Alte întrebări interesante