Un program care va căuta și înlocui un șir dat cu alt șir (de lungime diferită) într-un text.
Vor fi înlocuite toate aparițiile șirului dat.
Textul se va introduce în program ca un șir constant. Șirul căutat și cel cu care va fi
înlocuit se citesc de la console
Răspunsuri la întrebare
#include <iostream>
#include <cstring>
using namespace std;
char t[256], s1[20], s2[30], ss[300]="", *p;
int ls1;
int main()
{
cout << "introdu textul: ";
cin.getline(t,256);
cout << "introdu sirul s1: "; cin.getline(s1,20);
cout << "introdu sirul s2: "; cin.getline(s2,30);
ls1=strlen(s1); // lungimea lui s1
p=strstr(t,s1); // determina prima aparitie a lui s1 in t
while (p)
{
strncat(ss,t,p-t); //concateneaza primele p-t caractere la sirul ss
strcat(ss,s2); //concateneaza s2 la ss
strcat(ss,p+ls1); //concateneaza sirul de dupa aparitia lui s1 la ss
strcpy(t, ss); //copiaza ss in t
strcpy(ss,""); //anuleaza ss
p=strstr(t,s1); //cauta urmatore aparitie a lui s1 in t
}
cout << t; //afisare text modificat
}