STRPBRK |
Point d'arrêt dans chaine |
---|---|
Langage C | 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 permet d'effectuer la recherche dans la chaîne de caractères «str» de la chaîne de caractères «accept».
Algorithme
MODULE STRPBRK(source, accept) BOUCLE POUR CHAQUE caractère c de source FAIRE BOUCLE POUR CHAQUE caractère a de accept FAIRE SI c = a ALORS RETOURNE l'adresse de c dans source FIN SI FIN BOUCLE POUR CHAQUE FIN BOUCLE POUR CHAQUE * Aucun caractère de accept n'a été trouvé dans source RETOURNE NULL |
Remarques
- Comparaison de caractères multiples : strpbrk ne compare pas une chaîne de caractères entière mais plutôt chaque caractère de source avec l'ensemble des caractères dans accept. Cela permet de rechercher plus facilement plusieurs caractères possibles dans une chaîne sans avoir à effectuer de comparaisons manuelles.
- Retour de la fonction : Si un caractère de source correspond à l'un des caractères dans accept, strpbrk renvoie un pointeur vers cette position dans source. Si aucun caractère ne correspond, la fonction renvoie NULL. Cela permet de savoir si un caractère particulier (ou un ensemble de caractères) est présent dans la chaîne à partir d'une certaine position.
- Utilisation courante : Cette fonction est couramment utilisée pour rechercher des délimiteurs dans des chaînes de caractères de texte, comme lors de l'analyse de données séparées par des virgules ou des espaces. Par exemple, elle peut être utilisée pour rechercher les premiers caractères non alphabétiques dans une chaîne, comme les espaces ou les symboles de ponctuation.
- Sensibilité à la casse : Comme pour la plupart des fonctions de comparaison de chaînes de caractères en C, strpbrk effectue une comparaison sensible à la casse. Par conséquent, les caractères 'A' et 'a' seront considérés comme différents. Si une comparaison insensible à la casse est nécessaire, il faut recourir à d'autres approches, comme strcasestr ou des transformations explicites de casse avant l'appel.
- Performances et complexité : strpbrk effectue une recherche sur chaque caractère de source et compare ce caractère avec tous les caractères de accept. Dans le pire des cas, cela donne une complexité de temps de O(m * n), où m est la longueur de source et n est la longueur de accept. Cela peut être inefficace si les chaînes de caractères sont très longues ou si le nombre de caractères à rechercher est élevé.
- Comportement avec des chaînes de caractères vides : Si source ou accept est une chaîne de caractères vide, strpbrk renverra immédiatement NULL car aucune correspondance ne peut être trouvée. Cela peut être utilisé pour tester des chaînes non initialisées ou indiquer une absence de données dans un flux de texte.
- Applications pratiques : strpbrk est fréquemment utilisée dans des scénarios de traitement de texte, comme la séparation de mots, l'extraction de sous-chaînes ou l'identification de délimiteurs dans des fichiers texte. Elle est aussi utile pour vérifier la présence de caractères spécifiques (comme des chiffres, des lettres, ou des symboles) dans un texte donné.
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 : Mardi, le 28 juillet 2015