Programmer en langage C
156
© Éditions Eyrolles
Notez bien que le contrôle ne porte pas directement sur la longueur de la chaîne finale.
Fréquemment, on déterminera ce nombre maximal de caractères à recopier comme étant la
différence entre la taille totale de la zone réceptrice et la longueur courante de la chaîne qui
s’y trouve. Cette dernière s’obtiendra par la fonction strlen présentée à la section 4.2.
6 Les fonctions de comparaison de chaînes
Il est possible de comparer deux chaînes en utilisant l’ordre des caractères définis par leur code.
a) La fonction :
strcmp ( chaîne1, chaîne2 )
compare deux chaînes dont on lui fournit l’adresse et elle fournit une valeur entière définie
comme étant :
●
positive si chaîne1 > chaîne2 (c’est-à-dire si chaîne1 arrive après chaîne2, au
sens de l’ordre défini par le code des caractères) ;
●
nulle si chaîne1 = chaîne2 (c’est-à-dire si ces deux chaînes contiennent exactement
la même suite de caractères) ;
●
négative si chaîne1 < chaîne2.
Par exemple (quelle que soit l’implémentation) :
strcmp ("bonjour", "monsieur")
est négatif et :
strcmp ("paris2", "paris10")
est positif.
b) La fonction :
strncmp ( chaîne1, chaîne2, lgmax )
travaille comme strcmp mais elle limite la comparaison au nombre maximal de caractères
indiqués par l’entier lgmax.
Par exemple :
strncmp ("bonjour", "bon", 4)
est positif tandis que :
strncmp ("bonjour", "bon", 2)
vaut zéro.
Delannoy Livre.book Page 156 Mercredi, 6. mai 2009 4:26 16
Précédent

- 169/281

Suivant