La bibliothèque <string> fournit une multitude de fonctions pratiques pour le traitement de chaînes de caractères. Voici une brève description des fonctions les plus fréquemment utilisées.
Dans le tableau suivant, <n> représente un nombre du type int. Les symboles <s> et <t> peuvent être remplacés par :
* une chaîne de caractères constante
* le nom d'une variable déclarée comme tableau de char
* un pointeur sur char (voir chapitre 9)
strlen(<s>) |
fournit la longueur de la chaîne sans compter le '\0' final |
|
strcpy(<s>, <t>) |
copie <t> vers <s> |
|
strcat(<s>, <t>) |
ajoute <t> à la fin de <s> |
|
strcmp(<s>, <t>) |
compare <s> et <t> lexicographiquement et fournit un résultat: |
|
négatif |
si <s> précède <t> |
|
zéro |
si <s> est égal à <t> |
|
positif |
si <s> suit <t> |
|
strncpy(<s>, <t>, <n>) |
copie au plus <n> caractères de <t> vers <s> |
|
strncat(<s>, <t>, <n>) |
ajoute au plus <n> caractères de <t> à la fin de <s> |
Remarques
- Comme le nom d'une chaîne de caractères représente une adresse fixe en mémoire, on ne peut pas 'affecter' une autre chaîne au nom d'un tableau:
- La concaténation de chaînes de caractères en C ne se fait pas par le symbole '+' comme en langage algorithmique ou en Pascal. Il faut ou bien copier la deuxième chaîne caractère par caractère ou bien utiliser la fonction strcat ou strncat.
- La fonction strcmp est dépendante du code de caractères et peut fournir différents résultats sur différentes machines (voir 8.5.).