Înlocuirea unui cuvânt dintr-un text cu un cuvânt dat

Lecție despre înlocuirea unui cuvânt cu altul într-un text folosind doar tablouri de caractere (`char[]`) în C++.

Cerința problemei

Se dă un text și două cuvinte. Se va înlocui primul cuvânt cu al doilea în text.

Exemplu de intrare și ieșire

Intrare:

text = "Căutăm cuvântul cuvântul", cuvantVechi = "cuvântul", cuvantNou = "text"

Ieșire:

Textul modificat: Căutăm text text

Explicația algoritmului

  1. Citim textul și cuvintele vechi și noi.
  2. Căutăm cuvântul vechi și îl înlocuim cu cuvântul nou.
  3. Afișăm textul modificat.

Implementare C++ folosind char[]

Această soluție folosește doar tablouri de caractere (char[]), fără string sau alte facilități din C++ Standard Library.

#include <iostream>
#include <cstring> // Pentru strlen() și strstr()
using namespace std;

void inlocuireCuvant(char text[], const char cuvantVechi[], const char cuvantNou[]) {
    char rezultat[1000] = "";
    char *pozitie = strstr(text, cuvantVechi);
    int index = 0;

    while (pozitie) {
        strncat(rezultat, text + index, pozitie - (text + index));
        strcat(rezultat, cuvantNou);
        index = (pozitie - text) + strlen(cuvantVechi);
        pozitie = strstr(text + index, cuvantVechi);
    }
    strcat(rezultat, text + index);
    strcpy(text, rezultat);
}

int main() {
    char text[1000], cuvantVechi[50], cuvantNou[50];

    cout << "Introduceti textul: ";
    cin.getline(text, 1000);
    cout << "Introduceti cuvantul vechi: ";
    cin >> cuvantVechi;
    cout << "Introduceti cuvantul nou: ";
    cin >> cuvantNou;

    inlocuireCuvant(text, cuvantVechi, cuvantNou);

    cout << "Textul modificat: " << text << endl;
    return 0;
}