Programmation impérative : TP 5
Allocations
Vous avez besoin dans la suite de la
bibliothèque stdlib.h.
- Proposez une fonction qui sur la donnée de deux double,
et seulement deux,
retourne un pointeur sur un double de la valeur maximale
des deux paramètres.
- Proposez une fonction qui sur la donnée de deux
tableaux ta, tb de même taille size
(donc trois paramètres) retourne un tableau de même taille
nouvellement alloué qui contient leurs différences
point-à-point.
- On souhaite obtenir un tableau trié contenant les mêmes valeurs
qu'un tableau t passé en paramètre sans modifier
ce dernier. Proposez une fonction qui retourne un pointeur sur un
tel tableau trié.
Chaînes de caractères
On sera amené à faire des allocations dynamiques.
- (Vu en TD) Écrire une fonction qui retourne la longueur d'une
chaîne de caractère, vue comme un tableau.
- Écrire une fonction qui sur la donnée d'une chaîne de caractères
retourne une copie de cette chaîne.
- Écrire une fonction qui sur la donnée de deux chaînes de caractères
retourne la concaténation de ces chaînes. (Exemple : avec
"coucou" et "toto", retourne "coucoutoto".)
- Écrire une fonction qui sur la donnée d'une chaîne de
caractères et de deux indices
i
et j
,
retourne une copie de la sous-chaîne comprise entre
l'indice i
inclus et j
non-inclus. Penser à bien renseigner les préconditions de la
fonction !
- Écrire une fonction qui sur la donnée d'un
caractère
sep
et d'une chaîne s
, retourne
un tableau contenant les sous-chaînes de s
délimitées
par sep
. Par exemple,
pour sep
= ';'
et s
= "ab;cde;;f;g hi"
, cette fonction
retourne une tableau de taille 5 contenant les chaînes "ab"
"cde" "" "f"
et "g hi"
.
NB : en pratique, pour pouvoir utiliser une telle fonction,
il faudrait soit retourner également sa taille (avec un
enregistrement, ou dans un paramètre supplémentaire passé par
référence), ou alors ajouter une case supplémentaire contenant
l'adresse NULL
marquant la fin du tableau.
- Écrire une fonction qui sur la donnée d'une chaîne de caractère
s
et d'un caractère c
retourne l'adresse
de la première occurrence de c
dans s
,
ou NULL
si c
n'est pas présent dans s
.