STRLEN |
Longueur de la chaîne de caractères |
---|---|
Langage C | string.h |
Syntaxe
size_t strlen(const char *str); |
Paramètres
Nom | Description |
---|---|
str | Ce paramètre permet d'indiquer la chaîne de caractères à calculer la longueur |
Description
Cette fonction permet de calculer la longueur de la chaîne de caractères. La fonction strlen parcourra donc la chaîne de caractères en entier, soit du début jusqu'à la fin afin dans déterminer la fin. La fin est indiqué par un caractère NUL (code ASCII 0) situé dans un tampon de données de caractères.
Algorithme
MODULE strlen(str) I ← 0 BOUCLE FAIRE TANT QUE str[I] ≠ 0 I ← I + 1 FIN BOUCLE TANT QUE RETOUR I |
Remarques
- Les chaînes de caractères du langages de programmation C sont une suite de caractères se terminant par un caractères ASCII 0, soit une chaîne de caractères ASCIZ. Ainsi, pour obtenir la longueur d'une chaîne de caractères, il faut systématiquement parcourir à chaque fois la longueur entière du tampon contenant la chaîne de caractères pour en déterminer la longueur. Par conséquent, déterminer la longueur d'une chaîne de caractères est un processus très lent, et si vous pouvez conserver la longueur de la chaîne de caractères dans une variable intermédiaire afin d'éviter d'appeler inutilement cette fonction, vous gagnez avantageusement en performance dans votre application.
- La taille en mémoire que doit occupé une chaîne de caractères correspond à sa (longueur + 1) octets. Ainsi, il faudra toujours avoir un octet de plus que la longueur de la chaîne de caractères pour conserver le caractère de code ASCII 0 (caractères NUL). De ce fait, si vous utiliser cette fonction pour déterminer la taille d'une chaîne de caractères dynamiquement, vous devrez rajouter additionner la valeur 1 afin qu'il conserve la chaîne de caractères entièrement avec sa terminaison.
- La chaîne de caractères commence généralement à la position 0 dans un tampon de caractères.
- ATTENTION ! Si votre chaîne de caractères ne contient pas de caractères de terminaison (caractère NUL), la fonction pourra parcourir de façon infini toute la mémoire de l'ordinateur et jamais se terminer (en mode réel d'un 8086 par exemple) ou provoquer une erreur de faute de protection d'accès au segment de mémoire illégale. Les chaînes de caractères en langage de programmation C sont donc une faiblesse de celui-ci et doivent être manipuler avec une certaines précautions.
- C++ : En langage de programmation C++, on utilisera plutôt la méthode char_traits::length situé le gabarit «std» pour avoir le même comportement.
Exemples
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
LONGUEUR('Bonjour')=7LONGUEUR(message)=3
LONGUEUR('Bonjour'+message)=10
L'exemple suivant permet de déterminer la longueur d'un tampon de caractères et indique la taille du tampon :
on obtiendra le résultat suivant :
Longueur de a avec strlen = 10Longueur de a avec sizeoif = 50
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - strlen
Langage de programmation - C pour Linux - Référence procédures et fonctions - strlen
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 260.