Section courante

A propos

Section administrative du site

STRSTR

Chaîne dans la chaîne
Langage C string.h

Syntaxe

char *strstr(const char *source,const char *search);

Paramètres

VNom Description
source Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ contenant la source.
search Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ à rechercher.

Retour

Valeur Description
NULL Cette valeur permet d'indiquer qu'aucune correspondance n'a pas été trouvé dans la recherche de la chaîne de caractères «source».
pointeur Ces valeurs permettent d'indiquer un pointeur vers la première occurrence dans la chaîne de caractères «source» de la séquence entières de caractères spécifiés dans la chaîne de caractères search.

Description

Cette fonction permet de rechercher la chaîne de caractères «search» dans la chaîne de caractères «source». La recherche effectué dans la chaîne de caractères utilise le format du langage de programmation C, lequel utilise le caractère ASCII 0 afin d'indiquer la fin d'une chaîne de caractères. Ainsi, par conséquent, la recherche n'inclura pas le caractère ASCII 0 lors de sa recherche et dès qu'il rencontrera le caractère ASCII 0 il arrêtera la recherche.

Algorithme

MODULE strstr(source, search)
   c = POINTEUR search
   POINTEUR search ← POINTEUR search + 1
   SI c ≠ CODE ASCII 0 ALORS
      RETOURNER source
   FIN SI
   len = strlen(search)
   BOUCLE FAIRE
      BOUCLE FAIRE
         sc = POINTEUR source
         POINTEUR source ← POINTEUR source + 1
         SI PAS sc ALORS
            RETOURNER NULL
         FIN SI
      TANT QUE sc ≠ c
   BOUCLE TANT QUE (strncmp(source, search, len) ≠ 0
   RETOURNER (source - 1)

Remarques

Exemples

Voici un exemple montrant comme afficher le contenu de la chaîne de caractères à partir de «Gladir.com» inclusivement :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.   char S[] ="Ceci est une chaine de caracteres avec Gladir.com contenu dedans !";
  6.   printf("%s\n",strstr(S,"Gladir.com"));
  7.   return 0;
  8. }

on obtiendra le résultat suivant :

Gladir.com contenu dedans !

L'exemple suivant permet d'effectuer le remplacement de «gladir.com» par «gladir.ca» dans la chaine de caractères recherché :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.     char source[] = "Chaine de caracteres contenant gladir.com !";
  8.     char search[] = "gladir.com";
  9.     char* p;
  10.  
  11.     p = strstr(source, search);
  12.     if (p) {
  13.         strcpy(p, "gladir.ca");
  14.         printf("%s", source);
  15.     } else {
  16.         puts("Cette chaine de caractères ne contient pas gladir.com");
  17.     }
  18.     return 0;
  19. }

on obtiendra le résultat suivant :

Chaine de caracteres contenant gladir.ca

Voir également

Langage de programmation - C++ - Référence procédures et fonctions - strstr

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 266.

Dernière mise à jour : Mardi, le 28 juillet 2015