Numărarea aparițiilor unui cuvânt într-un text

Lecție despre determinarea numărului de apariții ale unui cuvânt într-un text dat folosind doar tablouri de caractere (`char[]`) în C++.

Cerința problemei

Se dă un text și un cuvânt. Se va determina de câte ori apare cuvântul într-un text, țin modul exact (fără a lua in considerare variațiuni cu punctuație sau majuscule/minuscule).

Exemplu de intrare și ieșire

Intrare:

text = "Căutăm cuvântul cuvântul", cuvant = "cuvântul"

Ieșire:

Cuvântul 'cuvântul' apare de 2 ori într-un text.

Explicația algoritmului

  1. Citim textul de la tastatură.
  2. Citim cuvântul căutat de la utilizator.
  3. Parcurgem textul, extrăgând fiecare cuvânt individual.
  4. Comparăm fiecare cuvânt extras cu cel căutat.
  5. Incrementăm contorul de apariții dacă găsim o potrivire exactă.
  6. Afișăm rezultatul.

Implementare C++ folosind char[]

Această soluție folosește doar tablouri de caractere (char[]), fără string sau stringstream.

#include <iostream>
#include <cstring> // Pentru strlen() si strcmp()
using namespace std;

int main() {
    char text[1000], cuvant[50], cuvantText[50];
    int aparitii = 0, j = 0;

    cout << "Introduceti textul: ";
    cin.getline(text, 1000);
    cout << "Introduceti cuvantul cautat: ";
    cin >> cuvant;

    int len = strlen(text);
    
    for (int i = 0; i <= len; i++) {
        if (text[i] != ' ' && text[i] != '\0') {
            cuvantText[j++] = text[i];
        } else {
            cuvantText[j] = '\0';
            if (strcmp(cuvantText, cuvant) == 0) {
                aparitii++;
            }
            j = 0;
        }
    }

    cout << "Cuvantul '" << cuvant << "' apare de " << aparitii << " ori in text." << endl;
    return 0;
}