strstr()

Funcția strstr() caută un subșir într-un alt șir și returnează adresa de început a primei apariții complete.

Utilizarea funcției implică includerea bibliotecii <cstring> în program.

Sintaxa
char* strstr(const char* sir, const char* subsir);
Parametri
  • sir: șirul principal în care se caută;
  • subsir: șirul (sau cuvântul) pe care dorim să-l găsim.
Returnare
Funcția are două scenarii de returnare:
  • pointer (adresa din memorie) spre prima apariție a subșirului, la primul caracter din această apariție;
  • NULL, dacă subșirul nu există complet în șirul mare.

Utilizarea funcției

Funcția strstr() este case-sensitive, însemnând că literele mari diferă de corespondentele lor mici (ex. "Ana" != "ana").

Un exemplu de program care folosește funcția strstr:

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

int main() {
    char text[] = "Ananas";
    char* p = strstr(text, "ana");

    if (p != NULL) {
        cout << "Gasit la pozitia: " << (p - text) << endl;
        cout << "Restul textului de la subsir: " << p << endl;
    } else {
        cout << "Subsirul nu a fost gasit." << endl;
    }

    return 0;
}         
Gasit la pozitia: 2
Restul textului de la subsir: anas

Putem obține indexul numeric al poziției la care s-a găsit subșirul scăzând din pointerul returnat de strstr() pointerul spre șirul în care se caută. În exemplul de mai sus, am găsit indexul numeric al subșirului prin afișarea p - text.