strncmp
|
Défini dans l'en-tête
<string.h>
|
||
|
int
strncmp
(
const
char
*
lhs,
const
char
*
rhs,
size_t
count
)
;
|
||
Compare au maximum count caractères de deux tableaux potentiellement terminés par un caractère nul. La comparaison est effectuée de manière lexicographique. Les caractères suivant le caractère nul ne sont pas comparés.
Le signe du résultat est le signe de la différence entre les valeurs de la première paire de caractères (tous deux interprétés comme unsigned char ) qui diffèrent dans les tableaux comparés.
Le comportement est indéfini lorsque l'accès se produit au-delà de la fin de l'un ou l'autre tableau lhs ou rhs . Le comportement est indéfini lorsque l'un ou l'autre lhs ou rhs est le pointeur nul.
Table des matières |
Paramètres
| lhs, rhs | - | pointeurs vers les tableaux potentiellement terminés par un caractère nul à comparer |
| count | - | nombre maximum de caractères à comparer |
Valeur de retour
Valeur négative si lhs apparaît avant rhs dans l'ordre lexicographique.
Zéro si lhs et rhs sont égaux, ou si count est zéro.
Valeur positive si lhs apparaît après rhs dans l'ordre lexicographique.
Notes
Cette fonction n'est pas sensible aux paramètres régionaux, contrairement à strcoll et strxfrm .
Exemple
#include <stdio.h> #include <string.h> void demo(const char* lhs, const char* rhs, int sz) { const int rc = strncmp(lhs, rhs, sz); if (rc < 0) printf("First %d chars of [%s] precede [%s]\n", sz, lhs, rhs); else if (rc > 0) printf("First %d chars of [%s] follow [%s]\n", sz, lhs, rhs); else printf("First %d chars of [%s] equal [%s]\n", sz, lhs, rhs); } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!", 5); demo(string, "Hello", 10); demo(string, "Hello there", 10); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5); }
Sortie :
First 5 chars of [Hello World!] equal [Hello!] First 10 chars of [Hello World!] follow [Hello] First 10 chars of [Hello World!] precede [Hello there] First 5 chars of [body!] equal [body!]
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.24.4.4 La fonction strncmp (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.24.4.4 La fonction strncmp (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.24.4.4 La fonction strncmp (p: 366)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.21.4.4 La fonction strncmp (p: 329)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.11.4.4 La fonction strncmp
Voir aussi
|
compare deux chaînes de caractères
(fonction) |
|
|
(C95)
|
compare un certain nombre de caractères de deux chaînes larges
(fonction) |
|
compare deux tampons
(fonction) |
|
|
compare deux chaînes conformément aux paramètres régionaux actuels
(fonction) |
|
|
Documentation C++
pour
strncmp
|
|