strlen, strnlen_s
From cppreference.net
|
Défini dans l'en-tête
<string.h>
|
||
|
size_t
strlen
(
const
char
*
str
)
;
|
(1) | |
| (2) | (depuis C11) | |
1)
Retourne la longueur de la chaîne d'octets terminée par un caractère nul donnée, c'est-à-dire le nombre de caractères dans un tableau de caractères dont le premier élément est pointé par
str
jusqu'au premier caractère nul, sans l'inclure.
Le comportement est indéfini si
str
n'est pas un pointeur vers une chaîne d'octets terminée par un caractère nul.
2)
Identique à
(1)
, sauf que la fonction retourne zéro si
str
est un pointeur nul et retourne
strsz
si le caractère nul n'a pas été trouvé dans les premiers
strsz
octets de
str
.
Le comportement est indéfini si
str
n'est pas un pointeur vers une chaîne d'octets terminée par un caractère nul et si
strsz
est supérieur à la taille de ce tableau de caractères.
-
Comme pour toutes les fonctions avec vérification des limites,
strnlen_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <string.h> .
Table des matières |
Paramètres
| str | - | pointeur vers la chaîne d'octets terminée par un caractère nul à examiner |
| strsz | - | nombre maximum de caractères à examiner |
Valeur de retour
1)
La longueur de la chaîne d'octets terminée par un caractère nul
str
.
2)
La longueur de la chaîne d'octets terminée par un caractère nul
str
en cas de succès, zéro si
str
est un pointeur nul,
strsz
si le caractère nul n'a pas été trouvé.
Notes
strnlen_s
et
wcsnlen_s
sont les seules
fonctions à vérification des limites
qui n'invoquent pas le gestionnaire de contraintes d'exécution. Ce sont des fonctions utilitaires pures utilisées pour fournir un support limité aux chaînes de caractères non terminées par un caractère nul.
Exemple
Exécuter ce code
#define __STDC_WANT_LIB_EXT1__ 1 #include <stdio.h> #include <string.h> int main(void) { const char str[] = "How many characters does this string contain?"; printf("without null character: %zu\n", strlen(str)); printf("with null character: %zu\n", sizeof str); #ifdef __STDC_LIB_EXT1__ printf("without null character: %zu\n", strnlen_s(str, sizeof str)); #endif }
Sortie possible :
without null character: 45 with null character: 46 without null character: 45
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.24.6.3 La fonction strlen (p: TBD)
-
- K.3.7.4.4 La fonction strnlen_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.24.6.3 La fonction strlen (p: TBD)
-
- K.3.7.4.4 La fonction strnlen_s (p: TBD)
- Norme C11 (ISO/IEC 9899:2011):
-
- 7.24.6.3 La fonction strlen (p: 372)
-
- K.3.7.4.4 La fonction strnlen_s (p: 623)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.21.6.3 La fonction strlen (p: 334)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.11.6.3 La fonction strlen
Voir aussi
|
(C95)
(C11)
|
retourne la longueur d'une chaîne large
(fonction) |
|
retourne le nombre d'octets dans le prochain caractère multioctet
(fonction) |
|
|
Documentation C++
pour
strlen
|
|