C++ : TP 1 - Classe string

© D. Mathieu    mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique
Créé le 03/01/2000 - Dernière mise à jour : 08/01/2001

Remarques préliminaires :

Sommaire

Premier programme  exo_01
Constructeurs et accesseurs  exo_02
Modifieurs  exo_03
Algorithmes de recherche  exo_04


Premier programme

exo_01
    Se placer dans le répertoire courant, si ce n'est déjà fait. Y recopier les fichiers Makefile :
 
#/**
#*
#* @File : Makefile
#*
#* @Authors : D. Mathieu
#*            M. Laporte
#*
#* @Date : 31/10/2000
#*
#* @Version : V1.0
#*
#* @Synopsis : Makefile de base des TPs C++
#*
#**/
#
$(nom) : $(nom).cxx
        g++ -s -o $(nom) $(nom).cxx -Wall
#
clean :
        clear; rm -f *.o exo_?? -v

et Squelette.cxx,
 
/**
 * @File : .cxx
 *
 * @Authors : 
 *
 * @Date : 
 *
 * @Version : V1.0
 *
 * @Synopsis : 
 *
 **/
#include <iostream>
#include <string>

using namespace std ;

namespace 
{
    void Exo_ (void)
    {
    } // Exo_()

} // namespace anonyme

int main (void)
{
    Exo_ ();

    return 0;

} // main ()

mis à votre disposition : voir Chemins d'accès aux sources des corrigés.

    Afin de vérifier qu'il n'y a aucun problème, testez [1] le petit programme qui vous a été donné en amphi :
 
/**
 *
 * @File : exo_01.cxx
 *
 * @Authors : D. Mathieu
 *
 * @Date : 04/12/2000
 *
 * @Version : V1.0
 *
 * @Synopsis : 
 *
 **/
#include <iostream>

#include <unistd.h>   // sleep()

using namespace std ;

int main (void)
{
    cout << "Premier exemple" << endl;

    cout << "Debut" << '\n';
    cout << flush;
    ::sleep (1);
    cout << "Suite\n" << flush;
    ::sleep (1);
    cout << "Fin"   << endl;

    return 0;

} // main()

Sommaire


Constructeurs et accesseurs

exo_02 [2]

    Recopier le fichier Squelette.cxx dans le fichier exo_02.cxx.

    Dans son espace de noms anonyme, ajouter la fonction EditSizes() de profil :
 
void EditSizes (const string & Str);

qui affiche dans le flux cout les caractéristiques de la chaîne passée en paramètre (longueur, taille, taille maximale, capacité - voir : accesseurs de la classe string).

    Toujours dans l'espace de noms anonyme du fichier exo_02.cxx, compléter la fonction Exo_02(), en testant tous les constructeurs et toutes les combinaisons de leurs paramètres. Afficher chaque chaîne créée et ses caractéristiques.

    Compiler et tester.

Corrigés : exo_02.cxx

Sommaire


Modifieurs

exo_03
    Recopier le fichier exo_02.cxx dans exo_03.cxx et remplacer la fonction Exo_02() par les fonctions Exo_03a(), Exo_03b(), Exo_03c() et Exo_03d().

    Dans Exo_03a(), tester la fonction append().

    Compiler et tester.

    Dans Exo_03b(), tester la fonction assign().

    Compiler et tester.

    Dans Exo_03c(), tester les fonctions insert() et erase().

    Compiler et tester.

    Dans Exo_03d(), tester les fonctions replace() et swap().

    Compiler et tester.

Corrigés : exo_03.cxx

Sommaire


Algorithmes de recherche

exo_04
    Recopier le fichier exo_03.cxx dans exo_04.cxx et remplacer les fonctions Exo_03?() par Exo_04(). Dans celle-ci, tester testez une combinaison de find(), rfind(), find_first_of(), find_last_of(), find_first_not_of(), find_last_not_of().

    Compiler et tester.

Corrigés : exo_04.cxx

Sommaire


Téléchargement des corrigés :

tpstring.zip

Chemins d'accès aux sources des corrigés :

~mathieu/PARTAGE/src/tp/tpC++/tpstring/dirstring


[1] Cet exercice ne peut être porté directement sous Windows, la fonction sleep() étant une fonction système Unix

[2] Cet exercice, comme tous les suivants, peut être compilé avec le compilateur Borland C++ 5.5 gratuit. L'extension standard du fichier source doit alors être .cpp et non .cxx.

© D. Mathieu     mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique