IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Concatenation de chaines


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Concatenation de chaines
    Bonjours à tous.

    Voila, je suis débutant dans la programmation et dans le language C et j'ai un petit problème sur un exercice que j'ai à faire.

    Le but de l'éxerice est de copier plusieur fois le même mot à la suite, le mot etant fournis par l'utilisateur ainsi que le nombre d'occurence.
    Par exemple, si l'utilisateur rentre le mot "programmation" et le nombre "5", le programme devra alors afficher:
    "programmationprogrammationprogrammationprogrammationprogrammation".
    J'ai essayé de le faire avec la commande strcat dans une boucle for mais sa ne marchait pas. Je voudrais savoir si quelqu'un savait comment faire.
    Voila, merci .

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Tu peux tout a fait utiliser strcat.

    Publie ton code, pour voir ce qui ne marche pas.

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Il faut que tu alloues une chaîne "assez longue", typiquement n fois la longueur de la chaîne plus 1 pour le zéro terminal.
    N'oublie pas de désallouer la chaîne à la fin du prog.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut
    Tu alloue l'espace nécessaire pour tout faire rentrer, et tu rajoute à la suite avec strcat(). Voila ce que je propose :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    char *creerLaChaine(char *mot, int repetition)
    {
         if ((mot != NULL) && (repetition > 0)){
              char *retour = malloc(strlen(mot) * repetition + 1);
     
              if (retour != NULL)
              {
                   int i = 0;
                   for(i = 0;i < repetition;i++)
                   {
                        strcat(retour, mot);
                   }
     
                   return retour;
              }
         }
         return NULL;
    }
     
     
    int main()
    {
         printf("chaine creee:'%s'\n", creerLaChaine("programmation", 6));
         return 0;
    }

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                  int i = 0;
                   for(i = 0;i < repetition;i++)
                   {
                        strcat(retour, mot);
    euhhh....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                 int i = 0;
                   for(i = 0;i < repetition;i++)
                  {
                      if ( i == 0 )
                         strcpy (retour, mot );
                       else
                        strcat(retour, mot);

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par souviron34
    euhhh....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                 int i = 0;
                   for(i = 0;i < repetition;i++)
                  {
                      if ( i == 0 )
                         strcpy (retour, mot );
                       else
                        strcat(retour, mot);
    Une façon compliquée de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          int i;
          strcpy (retour, mot );
          for (i = 1; i < repetition; i++)
          {
             strcat(retour, mot);
          }
    ou tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          int i;
          *retour= 0;
          for (i = 0; i < repetition; i++)
          {
             strcat(retour, mot);
          }

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Spootnik
    Tu alloue l'espace nécessaire pour tout faire rentrer, et tu rajoute à la suite avec strcat(). Voila ce que je propose :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    char *creerLaChaine(char *mot, int repetition)
    {
         if ((mot != NULL) && (repetition > 0)){
              char *retour = malloc(strlen(mot) * repetition + 1);
     
              if (retour != NULL)
              {
                   int i = 0;
                   for(i = 0;i < repetition;i++)
                   {
                        strcat(retour, mot);
                   }
     
                   return retour;
              }
         }
         return NULL;
    }
    Je vois un petit problème. malloc() d'initialise pas la mémoire alloué à 0 (contrairement à calloc()). Donc, à priori, tu dois initialiser la chaîne retour comme une chaîne vide avant d'utiliser strcat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (retour != NULL)
    {
        int i = 0;
        retour[0] = '\0';
        for(i = 0; i < repetition; i++)
        {
            strcat(retour, mot);
        }
     
        return retour;
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (retour != NULL)
    {
        int i = 0;
        strcpy(retour, "");
        for(i = 0; i < repetition; i++)
        {
            strcat(retour, mot);
        }
     
        return retour;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut
    oui, désolé pour l'oubli, donc en résumé ça donne ça :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    char *creerLaChaine(char *mot, int repetition)
    {
        if ((mot != NULL) && (repetition > 0)){
            char *retour = malloc(strlen(mot) * repetition + 1);
     
            if (retour != NULL)
            {
                strcpy(retour, "");
     
                int i = 0;
                for(i = 0;i < repetition;i++)
                {
                    strcat(retour, mot);
                }
     
                return retour;
            }
        }
        return NULL;
    }
     
     
    int main()
    {
        printf("chaine creee:'%s'\n", creerLaChaine("programmation", 6));
        return 0;
    }

    Voila

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Si tu ne fais pas la supposition que tout le mode dispose d'un compilateur qui supporte C99, les variables (comme i) doivent être définies en début de bloc. Si tu veux être portable, inverse 'int i = 0;' et 'strcpy(retour, "");'.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut
    ah… je ne le savais pas, merci pour l'info

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Spootnik
    oui, désolé pour l'oubli, donc en résumé ça donne ça
    Je ne comprends toujours pas pourquoi il y a 2 return... D'autre part, tu n'est pas obligé de créer une fuite mémoire...

    Qu'est-ce qui ne va pas avec ça ? Trop simple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    char *creerLaChaine (char const *mot, int repetition)
    {
       char *retour = NULL;
       if (mot != NULL && repetition > 0)
       {
          retour = malloc (strlen (mot) * repetition + 1);
     
          if (retour != NULL)
          {
             *retour = 0;
     
             int i = 0;
             for (i = 0; i < repetition; i++)
             {
                strcat (retour, mot);
             }
          }
       }
       return retour;
    }
     
    int main (void)
    {
       char *s = creerLaChaine ("programmation", 6);
       if (s != NULL)
       {
          printf ("chaine creee:'%s'\n", s);
          free (s), s = NULL;
       }
       return 0;
    }

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Spootnik
    Tu alloue l'espace nécessaire pour tout faire rentrer, et tu rajoute à la suite avec strcat(). Voila ce que je propose :
    Nan. On est pas là pour faire les devoirs des élèves. On sait que tu sais le faire. Faut se retenir. Oui, c'est difficile...

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Nan. On est pas là pour faire les devoirs des élèves. On sait que tu sais le faire. Faut se retenir. Oui, c'est difficile...
    D'ailleurs il a pas répondu

  14. #14
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Au lieu de strcpy(retour, ""); on peut faire simplement *retour = 0;
    [edit] grillé par Emmanuel, apparemment [/edit]
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  15. #15
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci a tous pour toute ces réponses, mon programme marche trés bien grace a toute vos indications. j'avais pas pensé a copier mon mot dans une chaine vide, j'essayé de le copier a directement en faisant strcat(mot, mot) et sa me donnais un peu n'importe quoi mais la c'est nikel. Encore merci à tous.
    Bon week-end .

  16. #16
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    salut tout le monde.
    Grace aux conseils que vous m'avez donné hier, j'ai reussi à faire mon programme. Mais j'ai une erreur à la compilation.
    Voici mon code( un peu long j'avou):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    #include <iostream>
    using namespace std;
    
    int dupliqueMot(int *nbPoss,char *retour[], char mot[], int *nbOcc){
        
            int cpt=0;
            int taille;
            int resul=0;
        
        while (mot[cpt]!='\0')// cette boucle calcul la place que prend la chaine que veut creer l'utilisateur
        {                    // c'est a dire la suite de mots.
              cpt++;
        }
        taille=cpt*(*nbOcc);
        
        if (taille<=30) {             // si la suite est assez petite pour rentrer dans le tableau
        
        *retour[0] = '\0'; 
        for (int i=0; i<*nbOcc; i++) // on rentre dans la boucle for qui  effectue la suite des mots.
    {   
        
        strcat(*retour, mot);
        
        
    }
        return 0;
        
                       }
                       
        else {                         //si la suite est trop grande pour rentrer dans le tableau
        
        
        do
        {                              // on rentre dans la boucle do while qui calcul le nombre d'occurence possible
        resul=cpt*(*nbPoss);             // que l'on peut mettre dans le tableau
        nbPoss++;
        }
        while (resul<=30);
        
       *retour[0] = '\0';              // le tableau retour est un tableau vide ou l'on va stocker la chaine.
    for (int i=0; i<*(nbPoss-2); i++)
    {   
        
        strcat(*retour, mot);
    }
        return 1;
    
             }
             }
    
    
    int main(){
        
        
        char resultat[30];
        char MotVoulu[20];
        int nombreVoulu=0;
        int nombreObtenu=0;
        int x;
        
        printf("quelle mot voulez-vous dupliquer? : ");
        gets(MotVoulu);
        printf("combien d'occurences voulez-vous?:");
        scanf("%ld", &nombreVoulu);
        
        x=dupliqueMot(&nombreObtenu, &resultat[], MotVoulu[], &nombreVoulu);// x est egal a la valeur de retour de la fonction
        
        if (x==0)
        {
        printf("resultat : %s\n ",resultat);
        printf("on a  %ld fois le mot %s \n", nombreVoulu, MotVoulu);
        }
        else
        {
        printf("resultat : %s\n ",resultat);
        printf("on a seulement %ld fois le mot %s \n", nombreObtenu-2, MotVoulu);
        }
        system("PAUSE");
        return 0;
    }
    Mon compilateur (Dev c++) indique une erreur a la ligne que j'ai souligné, il m'écrit:expected primary-expression before `]`token.

    Je sais pas si l'erreur vient des pointeurs ou d'un autre truc parce que j'ai pas encore vu les pointeurs, c'etait justement le but de l'éxo, utiliser les pointeurs mais la j'dois avouer que j'suis larguer sur cette erreur.

  17. #17
    Membre émérite
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par défaut
    Salut ,

    2 remarques :

    * Ton code semble être du C++ => catégorie C++
    * Utilise la balise CODE pour que ce soit plus clair...

  18. #18
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je ferais plusieurs remarques :

    1) fais des indentations correctes
    2) pourquoi passes-tu des entiers par adresse alors que tu ne vas pas les modifier (nombreVoulu) ?
    3) il y a une fonction standard qui te calcules la longueur de la chaîne (strlen(Mot) ) au lieu de faire ta boucle while.....
    4) il te manque une allocation sur retour
    5) "mot" est masculin , donc "quelle" est en fait "quel" ......
    6) Si tu es en C++ je ne sais pas ce qu'il te faut comme include, mais en C je ne sais pas ce que vient faire "namespace" et "iostream"... stdlib et stdio marchent très bien
    7) pourquoi fais-tu "system(PAUSE)" ??
    8) En général la règle veut qu'on passe les arguments qui ne sont pas modifiés et qui sont des INPUT en premier (mot, nbVoulu), puis ceux qui sont entrée/sortie, et enfin ceux qui sont sortis...
    9) tes accolades ne sont pas par paires (voir le 1) donc c'est sûr qu'il y a un pbe à la compilation... Regardes attentivement...

    C'est tout pour l'instant

  19. #19
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par souviron34
    8) En général la règle veut qu'on passe les arguments qui ne sont pas modifiés et qui sont des INPUT en premier (mot, nbVoulu), puis ceux qui sont entrée/sortie, et enfin ceux qui sont sortis...
    L'ordre des parametres d'une fonctions different beaucoup en fonction des normes de codage et des langages.
    En C, c'est meme plutot l'inverse qui est utilise, voir a ce sujet la bibliotheque standard (en partculier les fonctions du type memcpy, strcpy, strcat, etc.)

  20. #20
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Citation Envoyé par Rydley
    Bonjours à tous.

    Voila, je suis débutant dans la programmation et dans le language C et j'ai un petit problème sur un exercice que j'ai à faire.

    Le but de l'éxerice est de copier plusieur fois le même mot à la suite, le mot etant fournis par l'utilisateur ainsi que le nombre d'occurence.
    Par exemple, si l'utilisateur rentre le mot "programmation" et le nombre "5", le programme devra alors afficher:
    "programmationprogrammationprogrammationprogrammationprogrammation".
    J'ai essayé de le faire avec la commande strcat dans une boucle for mais sa ne marchait pas. Je voudrais savoir si quelqu'un savait comment faire.
    Voila, merci .
    Si le but est de faire que de l'affichage, alors une simple boucle sur un printf suffit. Non ? Ou bien je n'ai pas compris la question ?

Discussions similaires

  1. [C++.net]Concatener des chaines de caractère
    Par Dlyan dans le forum MFC
    Réponses: 3
    Dernier message: 27/03/2006, 15h25
  2. [Oracle 8i/ Sql] Concatener une chaine
    Par dimdidi dans le forum Oracle
    Réponses: 5
    Dernier message: 07/02/2006, 13h42
  3. concatenation de chaine dans un left outer join
    Par the_edge dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/11/2004, 16h08
  4. Réponses: 2
    Dernier message: 01/07/2004, 11h36
  5. Concaténation de chaine de caractères
    Par joy dans le forum Linux
    Réponses: 5
    Dernier message: 07/07/2003, 13h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo