logo

strstr() en C/C++

En C/C++, std::strstr() est une fonction prédéfinie utilisée pour la correspondance de chaînes. est le fichier d'en-tête requis pour les fonctions de chaîne. Cette fonction prend deux chaînes s1 et s2 comme arguments et trouve la première occurrence de la chaîne s2 dans la chaîne s1 . Le processus de correspondance n’inclut pas les caractères nuls de fin («   »), mais la fonction s’arrête là.

Syntaxe

char * strstr  (const char * s1 , const char * s2 );>

Paramètres

    s1 : C'est la chaîne principale à examiner. s2 : Il s'agit de la sous-chaîne à rechercher dans la chaîne.

Valeur de retour

  • Cette fonction renvoie un pointeur vers le premier caractère du trouvé s2 dans s1 sinon un pointeur nul si s2 n'est pas présent dans s1 .
  • Si s2 pointe vers une chaîne vide, s1 est renvoyé.

Exemple

Le programme ci-dessous illustre l'utilisation de la fonction strstr().



C






// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >printf>(>'String found '>);> >printf>(>'First occurrence of string '%s' in '%s' is '> >''%s''>,> >s2, s1, p);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>



>

>

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >cout <<>'String found'> << endl;> >cout <<>'First occurrence of string ''> << s2> ><<>'' in ''> << s1 <<>'' is ''> << p <<>'''> ><< endl;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

Sortir

String found First occurrence of string 'for' in 'techcodeview.com' is 'forGeeks'>

Complexité temporelle : O(n + m), où n est la taille de s1 et m est la taille de s2.
Espace auxiliaire : O(m), où m est la taille de s2.

Note: L'implémentation officielle de strstr() n'est pas spécifiée, son implémentation est supposée consister en l'un des algorithmes standard de correspondance de chaînes. Ici, nous avons supposé qu'il est implémenté à l'aide de l'algorithme de Knuth-Morris-Pratt, qui présente une complexité temporelle et spatiale comme indiqué ci-dessus.

Application : Remplacer une chaîne par une autre

Dans cet exemple, à l'aide de la fonction strstr(), nous recherchons d'abord l'occurrence de la sous-chaîne STL dans s1 et après cela, remplacez ce mot par Cordes .

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >cout << s1;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

C




// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >printf>(>'%s'>, s1);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>

>

conception unique
>

Sortir

Fun with Strings>

Complexité temporelle : O(n + m), où n est la taille de s1 et m est la taille de s2.
Espace auxiliaire : O(m), où m est la taille de s2.