Informatică, întrebare adresată de AnnaCiolte, 8 ani în urmă

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

Răspuns de boiustef
0

#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

}

Alte întrebări interesante