Langage C - Travaux Dirigés n° 5

IUP Mathématiques-Informatique


Exercice n° 1 (Longueur d'une chaîne)

Écrire une fonction strlength qui calcule la longueur d'une chaîne.

Exercice n° 2 (Comparaison de chaînes)

Écrire une fonction strcomp qui compare deux chaînes de caractères pour l'ordre lexicographique. Cette fonction rendra -1, 0 ou 1 comme le fait la fonction strcmp de la librairie standard.

Exercice n° 3 (Supressions des espaces)

Écrire une fonction delspace qui supprime les espaces et tabulations d'une chaîne de caractères. Cette fonction ne doit pas utiliser de tableau intermédaire. Le morceau de code

  char s[] = "bonjour à tous";
  delspace(s);
  printf("s = \"%s\"\n", s);
  
doit afficher le résultat s = "bonjouràtous".

Exercice n° 4 (Substitution)

Écrire une fonction strsubs qui substitue une chaîne de caractères dans une autre chaîne. Cette fonction prend les quatre paramètres suivants :

  1. une chaîne str à l'intérieur de laquelle s'effectue la substitution.
  2. une chaîne motif qui remplace une partie de la chaîne str.
  3. une position pos dans la chaîne str à partir de laquelle on commence à remplacer les caractères de str par ceux de motif.
  4. un nombre len qui donne le nombre maximal de caractères à substituer. La fonction en substitue moins si les fins des chaînes str ou motif sont atteintes avant.
La fonction strsubs retourne le nombre de caractères qu'elle a effectivement substitués. Le morceau de code
  char s[] = "bonjour à tous";
  strsubs(s, "soirée", 3, 4);
  printf("s = \"%s\"\n", s);
  
doit afficher le résultat s = "bonsoir à tous".

Exercice n° 5 (Retournement d'une chaîne)

Écrire une fonction strrev qui renverse une chaîne. Le morceau de code

  char s[] = "bonjour à tous";
  strreverse(s);
  printf("s = \"%s\"\n", s);
  
doit afficher le résultat s = "suot à ruojnob". Comme utiliser la fonction strreverse pour tester si une chaîne est un palindrome ? Écrire une fonction qui teste directement si une chaîne est un palindrome.