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*
Răspunsuri la întrebare
Răspuns de
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;
}
#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