Table des matières

Manipulation de chaînes de caractères

Dans cette partie, les exercices portent sur la manipulation de chaînes de caractères. Pour rappel, les chaînes de caractères se comportent comme des tableaux d'entiers de type char. La fin d'une chaîne de caractères est indiquée par un caractère de valeur 0 (le caractère NULL). Il s'agit concrètement de la première case du tableau non utilisée pour stocker un caractère de la chaîne.


Calcul de longueur

Écrivez un programme qui affiche la taille du premier argument passé dans la ligne de commande.


Test de palindrome

rappel : Un palindrome est un mot qui reste le même quel que soit le sens dans lequel on le lit (comme radar, gag, non, laval…).

Écrivez un programme qui teste si le premier argument passé en ligne de commande est un palindrome. Si c'est le cas, il doit afficher “palindrome”, sinon, il doit afficher “pas un palindrome” (pour l'instant, seule une version naïve est demandée. Comme 'a'!='A', il est normal que rAdar ne soit pas identifié comme palindrome).


Changement de Casse

Écrivez une fonction qui modifie Une chaîne de caractère pour qu'elle ne comporte que des caractères majuscule.

Utilisez cette fonction dans un programme qui reçoit un argument et un seul en ligne de commande et qui affiche sa version en majuscules.

Reprenez le programme du palindrome en prenant en compte le fait que si radar est un palindrome, alors RadAr aussi…


Test de validité d'argument entier

rappel: Les valeurs des caractères peuvent êtres manipulées comme des entiers. il est donc possible de tester le position relative dans la table ASCii grâce aux fonction inférieur et supérieur. Etant donné que la table ASCii suit une certaine logique, 'a' < 'z' est toujours vrai et '6' > '7' est toujours faux (par exemple). De la même façon, 'a' + 1 vaut 'b', 'Q' - 4 vaut 'M' et '0' + 3 vaut '3'.

  1. Écrivez une fonction qui reçoit une chaîne de caractère et qui renvoie un entier. Si la chaîne de caractères contient une valeur entière, la fonction doit renvoyer 1, sinon, elle doit renvoyer 0.
  2. Écrivez un programme qui affiche la somme de deux entiers passés comme argument en ligne de commande. Ce programme doit toujours afficher un résultat cohérent, quelque soient les arguments. Il doit donc afficher “Erreur” si :
    • le nombre d'arguments est différent de 2
    • un des deux arguments n'est pas une valeur entière

[Facultatif] Comparaison de chaînes

  1. Écrivez une fonction qui reçoit deux chaînes de caractères et qui renvoie :
    • 0 si les chaînes sont différentes
    • 1 si les chaînes ont la même valeur
    • 2 si la fonction a reçu deux fois la même chaîne.
  2. Testez cette fonction dans un programme. Ce programme affichera sur une première ligne le résultat de la fonction appelée sur les deux premiers arguments passés en ligne de commande. Sur une deuxième ligne, le programme affichera le résultat de la fonction si elle est appelée deux fois sur le même argument.
  3. Écrivez un programme qui copie le premier argument de la ligne de commande dans une variable et qui affiche le contenu de cette variable. Vous utiliserez votre fonction pour bien vérifier qu'il s'agit d'une copie.