👤

Scrieţi programul C/C++ care citeşte de la tastatură, separate prin Enter, două şiruri de caractere: un şir s de maximum 255 de caractere, care pot fi litere ale alfabetului englez şi spaţii, apoi un şir c de maximum 20 de caractere. Programul va înlocui în şirul s toate apariţiile şirului c cu un şir de exact aceeaşi lungime efectivă cu c, format doar din caractere *, ca în exemplu. Şirul s obţinut în urma acestei prelucrări va fi afişat pe ecran. În cazul în care c nu apare în s, programul va afişa mesajul NU APARE.
Exemplu: dacă şirul S citit este Din departare se vede tare iar c este tare atunci pe ecran se va afişa: Din depar**** se vede ****


#include

#include

using namespace std;

int main()

{

char s[256], c[21], d[21], *p;

cin.get (s,256);

int i, n, c;

cin>>c;

n=strlen(s)  

for (i = 0; i <= n-1 ; i ++)

d[i] = ' * ';

d[n]='\0';

p=strtok(s, " ");

while( p != 0)

{ if ( strcmp ( p,c ) == 0)


Eu asa m-am gandit sa fac. Nu stiu exact in continuare cum e. Cu strcat cred.


Răspuns :

#include<iostream> #include<cstring> using namespace std;

int main(){

   char s[256]; cin.get(s,256); cin.ignore();

   char c[21]; cin.get(c,21);

   char * stelute; for(int i=0;i<strlen(c);i++) *(stelute+i) = '*';

   char * pch = strstr(s,c);

   if(pch == nullptr){

       cout<<"Nu apare";

       return 1;

   }

   while(pch != nullptr){

       strncpy(pch,stelute,strlen(c));

       pch = strstr(pch+1,c);

   }

   cout<<s<<endl;

}


Deci, m-am chinuit cu chestia asta mai bine de o ora, nu inteleg de ce, s-ar putea sa am eu probleme cu compilerul, incearca sa rulezi si vezi ce iese, eu, daca rulez asa, imi zice "Nu apare"

Daca ELIMIN whileul, merge, daca las doar cele 2 lini, merge pentru o aparitie, asa ca, trebuie sa copiez, daca dau input tare tare tare ENTER tare, si am copiat de 3 ori cele 2 lini de cod, functioneaza, daca pare acel WHILE universul se supara si face ca programul sa nu mai mearga si N-ARE NICI UN PIC DE SENS, adica gandestete ca nici nu ajunge in punctul ala  si... sper ca intelegi ce zic.

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.


Wix Learning: Alte intrebari