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.).
Ecrire un programme qui demande l'introduction du nom et du prénom de l'utilisateur et qui affiche alors la longueur totale du nom sans compter les espaces. Employer la fonction strlen.
Exemple:
Introduisez votre nom et votre prénom: Mickey Mouse Bonjour Mickey Mouse ! Votre nom est composé de 11 lettres.
Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2, les compare lexicographiquement et affiche le résultat:
Exemple:
Introduisez la première chaîne: ABC Introduisez la deuxième chaîne: abc "ABC" précède "abc"
Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 et qui copie la première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Afficher le résultat.
a) Utiliser les fonctions spéciales de <string>.
b) Utiliser uniquement les fonctions gets et puts.
Ecrire un programme qui lit un verbe régulier en "er" au clavier et qui en affiche la conjugaison au présent de l'indicatif de ce verbe. Contrôlez s'il s'agit bien d'un verbe en "er" avant de conjuguer. Utiliser les fonctions gets, puts, strcat et strlen.
Exemple:
Verbe : fêter je fête tu fêtes il fête nous fêtons vous fêtez ils fêtent