problema #188 pbinfo
Se dau două cuvinte a şi b şi o propozitie s formată numai din litere mici ale alfabetului englez şi spaţii.
Cerinta
Să se modifices, înlocuind fiecare apariţie a cuvântului a cu cuvântul b.
Date de intrare
Fişierul de intrare inlocuirecuvant.in contine pe prima linie cuvintele a şi b, separate printr-un spatiu, iar pe a
doua linie propozitia s.
Date de ieşire
Fişierul de iesire inlocuirecuvant.out va contine pe prima linie propozitia s modificata in conformitate cu cerinta
Restricţii şi precizări
• propozitia s va avea cel mult 100 caractere
• cuvintele asi vor avea cel mult 10 caractere
- cuvintele sunt formate numai din litere mici ale alfabetului englez

Va rog dau coroana ​

Răspuns :

Răspuns:

#include<fstream>

#include<cstring>

using namespace std;

ifstream cin("inlocuirecuvant.in");

ofstream cout("inlocuirecuvant.out");

int main()

{

   char s[101],a[11],b[11],*p,aux[101];

   cin>>a>>b;

   cin.get();

   cin.getline(s,101);

   p=strstr(s,a);

   while(p)

   {

       strcpy(aux,p+strlen(a));

       strcpy(p,b);

       strcat(p,aux);

       p=strstr(p,a);

   }

   cout<<s;

   return 0;

}

Explicație:

Răspuns:Raspunsul de 100p

#include <fstream>

#include <cstring>

using namespace std;

ifstream fin("inlocuirecuvant.in");

ofstream fout("inlocuirecuvant.out");

char s[100],c1[10],c2[10],t[100];

char *p;

int main()

{

   fin>>c1>>c2;

   fin.get();

   fin.get(s,100);

   p=strtok(s," ");

   while(p)

   {

       if(strcmp(p,c1)==0)

       {

           strcat(t,c2);

       }

       else

       {

           strcat(t,p);

       }

       strcat(t," ");

       p=strtok(NULL," ");

   }

   fout<<t;

   return 0;

}

Explicație: