STRCHR |
Caractère dans la chaine |
---|---|
Langage C++ | cstring (string.h) |
Syntaxe
char *strchr(char *str,int c) |
Paramètres
Nom | Description |
---|---|
str | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ dans lequel la recherche est effectué. |
c | Ce paramètre permet d'indiquer le caractère à trouver. |
Description
Cette fonction effectue la recherche du premier caractère «c» dans la chaîne de caractères «str».
Remarques
- La fonction strchr() renvoie un pointeur sur la première occurrence de l'octet de poids faible de c dans la chaîne de caractères pointée par str. Si aucune correspondance n'est trouvée, un pointeur null est renvoyé.
- Recherche du caractère et retour d'un pointeur : strchr balaie la chaîne de caractères str de gauche à droite jusqu'à ce qu'elle trouve le premier c. Exemple :
- Inclut le caractère nul ('\0') dans la recherche : strchr prend en compte le caractère nul ('\0') terminant une chaîne de caractères. Si on cherche '\0', la fonction retournera un pointeur sur la fin de la chaîne. Exemple :
- Retourne nullptr si le caractère est absent : Si le caractère ch n'est pas trouvé, la fonction retourne nullptr. Exemple :
- Peut être utilisée pour extraire une sous-chaîne : strchr est utile pour extraire une partie d'une chaîne à partir d'un caractère spécifique. Exemple :
- Fonctionne sur les chaînes constantes (const char*) : strchr peut être utilisée sur une chaîne de caractères constante, mais retourne un const char* pour éviter une modification accidentelle. Exemple :
- Comparaison avec strrchr (dernière occurrence) : Contrairement à strchr, cherchant la première occurrence, strrchr cherche la dernière. Exemple :
- Alternatives modernes avec std::string : En C++, il est préférable d'utiliser std::string::find, étant plus sûr et intuitif. Exemple :
Ici, ptr pointera vers la première occurrence de 'o', soit "onjour le monde!".
Ici, end pointera juste après 'r', au '\0' terminal.
Cela permet de savoir si une recherche a échoué.
Ici, on récupère "jean" après le =.
Cela empêche la modification involontaire d'une chaîne en lecture seulement.
strchr pointera vers "anana", tandis que strrchr pointera vers "a".
Contrairement à strchr, std::string::find retourne un index et non un pointeur, ce qui évite certains bogues de gestion de mémoire.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - strrchr
Langage de programmation - C - Référence de procédures et fonctions - strchr
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 252.