STRCSPN |
SPN de chaine |
---|---|
Langage C | string.h |
Syntaxe
char *strcspn(const char *str1,const char *str2); |
Paramètres
Nom | Description |
---|---|
str1 | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ de base. |
str2 | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ de recherche. |
Description
Cette fonction effectue la recherche de la sous-chaîne «str1» ne contenant aucun des caractères contenu dans «str2».
Algorithme
MODULE STRCSPN(str, reject) i ← 0 * Parcourir chaque caractère de str BOUCLE FAIRE TANT QUE str[i] ≠ '\0' * Vérifier si le caractère actuel de str est dans reject j ← 0 BOUCLE TANT QUE reject[j] ≠ '\0' SI str[i] = reject[j] ALORS * Retourner l'index de la première correspondance RETOURNE i FIN SI j ← j + 1 FIN BOUCLE TANT QUE i ← i + 1 FIN BOUCLE FAIRE TANT QUE * Si aucun caractère de reject n'est trouvé, retourner la longueur de str RETOURNE i |
Remarques
- Valeur de retour : strcspn retourne la position (en nombre de caractères) du premier caractère de str1 appartenant également à str2. Si aucun caractère de str2 n'est trouvé dans str1, elle retourne la longueur totale de str1.
- Analyse des segments initiaux : La fonction est idéale pour des cas où l'on souhaite analyser un segment initial d'une chaîne de caractères avant qu'un caractère non désiré n'apparaisse. Par exemple, elle peut être utilisée pour identifier des champs ou délimiteurs dans un format de données.
- Chaînes de caractères vides : Si str2 est une chaîne de caractères vide, strcspn considère qu'il n'y a aucun caractère à rechercher et retourne toujours la longueur totale de str1. Si str1 est vide, la fonction retourne 0, quelle que soit la valeur de str2.
- Applications pratiques : strcspn est souvent utilisée dans le traitement de chaînes de caractères contenant des délimiteurs comme les espaces, les virgules ou d'autres séparateurs. Elle peut également être combinée avec strtok pour une gestion fine de sous-chaînes de caractères.
- Optimisation implicite : La fonction est généralement optimisée pour des recherches rapides, mais son efficacité peut diminuer si str2 contient un grand nombre de caractères. Le nombre d'opérations dépend de la longueur de str1 et de la taille de str2.
- Comparaison avec strspn : Contrairement à strspn, comptant les caractères initiaux appartenant à un ensemble donné, strcspn compte ceux n'appartenant pas à l'ensemble spécifié. Ces deux fonctions sont complémentaires pour analyser des chaînes de caractères sous différents angles.
- Gestion des caractères spéciaux : La fonction fonctionne avec tous les caractères, y compris les caractères non imprimables. Toutefois, comme elle ne différencie pas les majuscules et les minuscules, si une recherche insensible à la casse est nécessaire, des ajustements ou des fonctions supplémentaires comme tolower doivent être utilisées.
Voir également
Langage de programmation - C - Référence de procédures et fonctions - strchr
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 - strcspn
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 255.
Dernière mise à jour : Mardi, le 28 juillet 2015