Vous êtes sur la page 1sur 1

Université d’Aix-Marseille - Faculté des Sciences

Licence d'Informatique - Licence de Mathématiques

ENSIN2U1 - Programmation

TP 4

Manipulation de chaînes de caractères

On se propose ici de traiter des chaînes de caractères en programmant un certain nombre de


fonctionnalités de base, que l’on appelle traditionnellement « primitive » et dont certaines se retrouvent
d’ailleurs dans la bibliothèque standard. S’il n’existe pas à proprement parler de type « chaînes de
caractères » dans le lagange C, un certain nombre de conventions du langage en facilitent la
manipulation. Dans ce qui suit, nous considèrerons les chaînes de caractères comme des tableaux de
caractères selon le type C suivant :

typedef char CHAINE[21];

Par convention, dans le langage C, une chaîne doit être terminée par le caractère particulier « \0 »,
sachant qu’ainsi, la chaîne de quatre lettres test serait mémorisée dans une variable c de type
CHAINE avec c[0]=‘t’, c[1]=‘e’, c[2]=‘s’, c[3]=‘t’ et c[4]=‘\0’. Ainsi, le type
précédent permet de représenter des chaînes de 20 caractères au plus.

1. Programmation des primitives.

Il vous est demandé de programmer les fonctionnalités suivantes :


- initialisation d’une chaîne par saisie au clavier
- calcul de la longueur d’une chaîne (strlen)
- recopie une chaîne dans une autre (strcpy)
- recopie une chaîne dans une autre à concurrence de n caractères (strncpy)
- test de comparaison lexicographique entre deux chaînes c1 et c2, avec comme résultat +1 si
c1 > c2, puis 0 si c1= c2 i.e. c1 est exactement égale à c2, et -1 si c1 < c2 (strcmp)
- test de comparaison lexicographique entre deux chaînes c1 et c2, à concurrence de n
caractères (strncmp)
- recherche de caractère dans une chaîne, qui étant donnés une chaîne et un caractère, fournit en
résultat l’indice de la première occurrence du caractère dans la chaîne s’il est présent, et -1 s’il
ne s’y trouve pas (strchr)
- recherche de chaîne dans une chaîne, qui étant donnés deux chaînes c1 et c2, fournit en
résultat l’indice de la première occurrence de c2 dans c1 si la chaîne c2 est présente dans
c1, et -1 si elle ne s’y trouve pas (strstr).

2. Tableaux de chaînes de caractères.

On va maintenant travailler sur un tableau de chaînes de caractères. On peut utiliser le type suivant, où
N est bien sûr à définir :
typedef CHAINE TAB_CHAINE[N];

Il vous est demandé de programmer les fonctionnalités suivantes :


- initialisation d’un tableau de chaînes par saisie au clavier
- initialisation aléatoire d’un tableau de chaînes (on n’utilisera que des lettres minuscules)
- recherche d’une chaîne donnée dans un tableau de chaînes (sans supposer qu’il est trié)
- tri dans l’ordre lexicographique d’un tableau de chaînes
- recherche d’une chaîne donnée dans un tableau de chaînes en supposant qu’il est trié

Vous aimerez peut-être aussi