STRPBRK |
Point d'arrêt dans chaine |
---|---|
Langage C++ | cstring (string.h) |
Syntaxe
char *strpbrk(const char *source,const char *accept) |
Paramètres
Nom | Description |
---|---|
source | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ dans lequel la recherche doit avoir lieu. |
accept | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ à rechercher. |
Description
Cette fonction effectue la recherche dans la chaîne de caractères «source» de la chaîne de caractères «accept».
Remarques
- La fonction strpbrk() renvoie un pointeur sur le premier caractère de la chaîne de caractères pointée par source correspondant à n'importe quel caractère de la chaîne de caractères pointée par accept. Les terminateurs null ne sont pas inclus. S'il n'y a pas de correspondance, un pointeur null est renvoyé.
- Utilisation pour la recherche de caractères spécifiques : strpbrk est pratique lorsque l'on veut trouver rapidement le premier caractère d'un ensemble donné dans une chaîne de caractères. Exemple :
- Retourne un pointeur sur la chaîne de caractères source : La fonction ne copie pas de caractères, elle retourne un pointeur vers l'emplacement trouvé dans str1. Cela signifie que l'on peut accéder directement aux caractères suivants de la chaîne de caractères. Exemple :
- Retourne nullptr si aucun caractère n'est trouvé : Si aucun caractère de str2 n'est présent dans str1, strpbrk retourne un pointeur nul (nullptr). Cela permet de vérifier facilement si un caractère donné est présent dans une chaîne de caractères. Exemple :
- Insensible à l'ordre des caractères dans str2 : strpbrk ne cherche pas une séquence exacte mais un des caractères individuels présents dans str2. L'ordre des caractères dans str2 n'a donc aucune importance. Exemple :
- Alternative plus moderne : std::find_first_of : En C++, std::string offre une alternative plus lisible et sécurisée avec find_first_of(). Exemple équivalent :
- std::string str = "Bonjour";
- size_t pos = str.find_first_of("aeiou");
- if (pos != std::string::npos) std::cout << "Première voyelle : " << str[pos];
- Attention aux chaînes de caractères nulles (nullptr) : Si str1 ou str2 est un pointeur nul, strpbrk provoquera un comportement indéfini et peut entraîner un crash. Il est donc important de toujours vérifier la validité des entrées avant d'appeler cette fonction. Exemple dangereux :
- Utilisation courante pour l'analyse de texte : strpbrk est souvent utilisée pour rechercher rapidement des caractères de délimitation (comme ,, ;, .). Exemple : Trouver la première ponctuation dans une phrase :
Ici, elle trouve 'o' car c'est la première voyelle présente dans la chaîne de caractères.
std::find_first_of est plus flexible car il fonctionne directement avec std::string.
Cela permet de simplifier l'analyse de chaînes sans utiliser de boucles complexes.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - strlen
Langage de programmation - C - Référence de procédures et fonctions - strpbrk
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 264.
Dernière mise à jour : Lundi, le 3 août 2015