Archives de Catégorie: M1102 – TP6
R1.01 – TP5 – Exercice 1
Télécharger le projet minimal suivant.
Après compilation, placer le fichier LaFontaine.txt dans le même répertoire que votre exécutable.
A l’aide des arguments de commande, afficher à l’écran le contenu du fichier.
R1.01 – TP5 – Exercice 2
Ecrire le corps de la fonction ToLower ()
de signature :
string & ToLower (string & Str);
Cette fonction transforme chaque lettre de la chaine passée en paramètre en sa minuscule.
R1.01 – TP5 – Exercice 3
A partir de cet exercice :
- Il va falloir « Charger » le fichier qui est argument de commande dans un vecteur ;
- 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.
R1.01 – TP5 – Exercice 7
Dans cet exercice, on souhaite insérer une chaine de caractères à une position donnée dans le vecteur à l’aide de la fonction Insert ()
de signature :
vector <string> & Insert (vector <string> & VString, const unsigned & PosBeg, const string & Line);
Pour se faire, on doit agrandir le vecteur d’une case, et de décaler vers la droite le contenu de toutes les cases ayant un indice supérieur ou égal à PosBeg
.
Modifier le main ()
pour prendre en compte cette fonction. L’appel de ces fonctions se fait en saisissant la chaine « ins » suivie d’un numéro de ligne et de la chaine à insérer.
NB: pour saisir une chaine de caractère contenant des espaces, utiliser l’instruction getline (cin, XXX);
à la place de cin >> XXX;
(XXX
étant votre variable de type string
).
R1.01 – TP5 – Exercice 8
Dans cet exercice, on souhaite déplacer une chaine de caractères d’une position initiale vers une position finale Move ()
de signature :
vector <string>& Move (vector <string> & VString, const unsigned & PosBeg, const unsigned & PosEnd);
Modifier le main () pour prendre en compte cette fonction. L’appel de cette fonction se fait en saisissant la chaine « mov» suivie de deux numéros de ligne.
R1.01 – TP5 – Exercice 9
Dans cet exercice, on souhaite cadrer à gauche une chaine de caractères, cad supprimer tous les caractères d’espacement en début de cette chaine. Pour cela écrire le corps de la fonction TrimLeft ()
de signature :
string & TrimLeft (string & Str);
Ecrire le corps des deux fonctions suivantes :
vector <string> & TrimLeft (vector <string> & VString) ; vector <string> & TrimLeft (vector <string> & VString, const unsigned & LineNumber) ;
La première cadre à gauche 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 « tl» suivie de « tout » ou d’un numéro de ligne.