Răspuns :
#include <iostream>
#include <string.h>
using namespace std;
int main()
{cin.get (s, 101);
cin.get ();
cin>>c;
char *p, s1[150];
if(strstr(s,c)==0)
cout<<"Nu apare";
else
{ p=strtok(s," ")
while(p!=NULL)
{ strcat(s1,p);
if(strcmp(p,c)==0)
{ strcat(s1,"?");
strcat(s1," "); } }
p=strtok(NULL," "); }
strcpy(s,s1);
cout<<s;
return 0; }
Răspuns:
#include <iostream>
#include <string.h>
using namespace std;
char s[101], c[16];
int main()
{
cin.get (s, 101);
cin.get ();
cin>>c;
char *p, s1[150]="";
if(strstr(s,c)==0)
cout<<"Nu apare";
else
{
p=strtok(s," ");
while (p!=NULL)
{
strcat(s1,p);
if(strcmp(p,c)==0)
{
strcat(s1,"?");
}
strcat(s1," ");
p=strtok(NULL," ");
}
}
strcpy(s,s1);
cout << s;
return 0;
}
Explicație:
vin cu redactări a codului creat de domnişoara Cosmaandra2000. Sper că nu se va supăra...
Explicaţii a codului meu (şi a domnişoarei Cosmaandra2000 :))) )
Se declară global variabilele s şi c pentru text şi cuvânt. Se citeşte textul în s, sfîrşitul de linie ( cin.get (); ) şi cuvântul în c. Se declară noi variabile, pointerul *p la caracter şi s1 un şir de caractere unde se va crea răspunsul aşteptat. Deoarece s1 nu e declarată global, aici în main ea trebuie iniţializată ca şir vid.
Urmează verificarea dacă cuvântul solicitat e prezent în text. Asta se face cu funcţia predefinită strstr(s,c) care caută dacă c se conţine în s. La răspuns "nu", funcţia returnează 0, iar la răspuns "da" returnează prima poziţie de situare a subşirului în şir.
În caz că cuvîntul este prezent în text, se divide textul în cuvinte cu ajutorul funcţiei strtok. Cuvintele se lipesc în s1 cu ajutorul funcţiei strcat. Dacă cuvîntul selectat coincide cu cel solicitat atunci după el se adaugă în s1 caracterul "?". Evident după fiecare cuvînt se mau adaugă spaţiu.
Şi în final se face o copie a lui s1 pe s cu strcpy.
Trebuie de menţionat că în enunţ nu s-a accentuat care este structura textului, că cvintele sunt despărţite prin spaţiu
Pentru cazul cînd ai probleme cu copy/paste a codului postat îţi dau şi link-ul de pe pastebin a sursei:
https://pastebin.com/SV9Fi5Sr
p.s. Cu toată stima, dar codul domnişoarei nu mergea.. are cîteva scăpări, se vede că nu a fost testat
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.