R1.01 – TP5 – Exercice 3

A partir de cet exercice :

  1. Il va falloir « Charger » le fichier qui est argument de commande dans un vecteur ;
  2. Puis il faudra d’appliquer des fonctions que vous allez devoir écrire à une partie ou à l’intégralité du vecteur en fonction de ce que rentre l’utilisateur.

Par exemple, si l’utilisateur rentre au clavier les chaines « min tout » c’est qu’il souhaite qu’on transforme l’intégralité du vecteur en minuscule. En revanche, s’il rentre « min 14 » c’est qu’il souhaite transformer uniquement la 14ème ligne du vecteur en minuscule.

Plusieurs solutions s’offrent à vous : soit vous ne lisez que des string et si besoin vous pouvez les convertir en entier long à l’aide de la fonction stoul () (String TO Unsigned Long), soit vous faite un extraction à l’aide d’une variable correctement typée. Dans tous les cas, la saisie clavier est supposée juste.

Ecrire le corps des deux fonctions suivantes :

vector <string> & ToLower (vector <string> & VString) ;
vector <string> & ToLower (vector <string> & VString, const unsigned & LineNumber) ;

La première transforme toutes les lignes du vecteur en leur minuscule correspondante, la seconde ne s’applique à la ligne LineNumber.

Modifier le main () pour prendre en compte ses deux fonctions.

R1.01 – TP5 – Exercice 4

Dans cet exercice, on souhaite transformer une string en sa majuscule.

Ecrire la fonction ToUpper () de signature :

string & ToUpper (string & Str);

Ecrire le corps des deux fonctions suivantes :

vector <string> & ToUpper (vector <string> & VString) ;
vector <string> & ToUpper (vector <string> & VString, const unsigned & LineNumber) ;

La première transforme toutes les lignes du vecteur en leur majuscule correspondante, 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 « maj » suivie de « tout » ou d’un numéro de ligne.

R1.01 – TP5 – Exercice 5

Dans cet exercice on souhaite permuter les deux chaines du vecteur VString, qui sont aux positions PosBeg et PosEnd.
Ecrire la fonction Swap () correspondante.
La signature de la fonction est :

vector <string> & Swap (vector <string> & VString, const unsigned & PosBeg, const unsigned & PosEnd);

Modifier le main () pour prendre en compte cette fonction. L’appel de ces fonctions se fait en saisissant la chaine « swa» suivie de deux numéros de ligne.

R1.01 – TP5 – Exercice 6

Dans cet exercice, on souhaite supprimer une ligne (une case du vecteur) à l’aide de la fonction Delete () de signature :

vector <string> & Delete (vector <string> & VString, const unsigned & PosBeg);

Pour se faire, on doit tasser (décaler vers la gauche) l’ensemble des cases du vecteur qui suivent PosBeg.

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