STRCHR |
Caractère dans la chaine |
---|---|
Langage C | 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».
Algorithme
MODULE STRCHR(str, c) * Parcourir chaque caractère de la chaîne de caractères i ← 0 BOUCLE FAIRE TANT QUE str[i] ≠ '\0' SI str[i] = c ALORS * Retourner un pointeur vers la première occurrence de c RETOURNE str[i] FIN SI i ← i + 1 FIN BOUCLE FAIRE TANT QUE * Vérifier si c est '\0' (fin de la chaîne) SI c = '\0' ALORS * Retourner un pointeur vers le caractère nul RETOURNE str[i] FIN SI * Si le caractère n'est pas trouvé, retourner NULL RETOURNE NULL |
Remarques
- Valeur de retour : Si le caractère est trouvé, strchr retourne un pointeur sur la première occurrence de ce caractère dans la chaîne de caractères. Si le caractère n'est pas trouvé, elle retourne NULL. Cette capacité à renvoyer un pointeur facilite les manipulations ultérieures directement sur la chaîne à partir de la position trouvée.
- Recherche du caractère nul : Une particularité de strchr est qu'elle peut également rechercher le caractère nul (\0) qui marque la fin d'une chaîne de caractères. Dans ce cas, elle retourne un pointeur sur ce caractère de fin si trouvé.
- Limitation à une seule occurrence : strchr s'arrête dès qu'elle trouve la première occurrence du caractère recherché. Si plusieurs occurrences existent dans la chaîne de caractères, les autres ne seront pas prises en compte. Pour localiser toutes les occurrences, il faut utiliser une boucle appelant strchr sur le pointeur retourné pour continuer la recherche.
- Caractère recherché : Le paramètre c est un entier interprété comme un caractère de type unsigned char. Si la valeur dépasse les limites des caractères valides ou ne correspond pas au codage ASCII, le comportement est indéfini.
- Chaînes de caractères vides : Si la chaîne de caractères passée en paramètre est vide (c'est-à-dire un pointeur vers une chaîne de caractères contenant immédiatement \0), strchr retournera NULL pour tout caractère sauf \0. Cette situation doit être gérée pour éviter des erreurs de segmentation.
- Applications courantes : strchr est souvent utilisée pour des tâches comme le fractionnement de chaînes de caractères (strtok s'en inspire), la vérification de la présence d'un caractère dans une chaîne de caractères, ou encore pour localiser rapidement des délimiteurs (par exemple, dans les analyses de fichiers CSV ou de commandes utilisateur).
- Comparaison avec alternatives : Pour rechercher la dernière occurrence d'un caractère dans une chaîne de caractères, il est préférable d'utiliser strrchr, fonctionnant de manière similaire mais dans l'autre sens. De plus, pour des manipulations plus complexes, des fonctions comme strstr (pour les sous-chaînes) peuvent être nécessaires.
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.
Dernière mise à jour : Mardi, le 28 juillet 2015