Previous Next Up Index Contents

8.6.2. Les fonctions de <string>


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)

Fonctions pour le traitement de chaînes de caractères

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:

Attention!

Il faut bien copier la chaîne caractère par caractère ou utiliser la fonction strcpy respectivement strncpy:

strcpy(A, "Hello");

- 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.).


Exercice 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.


Exercice 8.6

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"


Exercice 8.7

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.


Exercice 8.8

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


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber