M1102 – TP6 – Exercice 10

Dans cet exercice, on souhaite cadrer à droite une chaine de caractères sur XXX caractères (XXX étant un entier naturel), et ce sans utiliser le manipulateur setw (). Il faut donc insérer autant d’espaces que nécessaire en début de chaine de caractères. Pour cela écrire le corps de la fonction TrimRight () de signature :

string & TrimRight (string & Str , const unsigned long & Width);

L’algorithme de haut niveau est le suivant :

  1. Redimensionner Str à Width;
  2. Décaler en partant de la fin les caractères de Str à leur nouvelle place ;
  3. Remplacer tous les caractères nécessaires par des espaces.

Ecrire le corps des deux fonctions suivantes :

vector <string> & TrimRight (vector <string> & VString, const unsigned long & Width) ;
vector <string> & TrimRight (vector <string> & VString, const unsigned & LineNumber, const unsigned long & Width) ;

La première cadre à droite toutes les lignes du vecteur, la seconde ne s’applique à la ligne LineNumber.

Modifier le main () pour prendre en compte ses deux fonctions. L’appel de ces fonctions se fait en saisissant la chaine « tr» suivie de « tout » ou d’un numéro de ligne.

NB: L’entier Width ne doit pas être demandé par saisie, mais est votre deuxième argument de commande à partir de maintenant. Mettez une valeur supérieure ou égale à 65.