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 String et entier


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Concatenation String et entier
    Bonjour,
    j'aurais voulu savoir comment concaténer deux chaines de caracteres en c .
    sachant que je voudrait faire évoluer une chaine par exemple "coucou" en meme temps qu'un entier afin d'obtenir coucou1, coucou2, etc ...

    PS : j'ai vu strcat, mais n'arrive pas a faire ceci avec
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    snprintf() sur un compilateur+SDK conformes au standard C99, sprintf() sinon.

    Edit: Et un triple-ninja, un!

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Dans ton cas, sprintf() est adaptee.

  4. #4
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
     
    ...
    char s[256];
    int i;
     
    ...
    sprintf(s,"coucou%d",i);
    ...

  5. #5
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Tu peux utiliser sprintf(), ou mieux, si ton compilateur supporte C99, snprintf(). Pour ce qui est des détails d'utilisation, consulter la doc: http://man.developpez.com/man3/sprintf.3.php

    Thierry

  6. #6
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
         int nbr, boucle;
         char coucou[255] = "coucou";
     
         while(boucle != 0)
         {
           boucle = boucle - 1;
           printf(", %s%i", coucou, nbr);
           nbr = nbr + 1;
         }
          system("PAUSE");
          return 0;
    }

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par _SamSoft_
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
         int nbr, boucle;
         char coucou[255] = "coucou";
     
         while(boucle != 0)
         {
           boucle = boucle - 1;
           printf(", %s%i", coucou, nbr);
           nbr = nbr + 1;
         }
          system("PAUSE");
          return 0;
    }
    Code faux.
    nbr et boucle non initialisé. Code inutilement compliqué.

  8. #8
    Membre éclairé 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
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _SamSoft_
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
         int nbr, boucle;
         char coucou[255] = "coucou";
     
         while(boucle != 0)
         {
           boucle = boucle - 1;
           printf(", %s%i", coucou, nbr);
           nbr = nbr + 1;
         }
          system("PAUSE");
          return 0;
    }
    Merci de tester un minimun le code avant de poster n'importe quoi !!!!

  9. #9
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    comment ca pas "initialisé" , faut il définir une valeur aux variables, si oui ce n'est pas à moi de le définir mais au créateur du sujet ! lol , sinon c'est quoi ?
    Je suis au lycée et je ne peux pas le tester

  10. #10
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par _SamSoft_
    comment ca pas "initialisé" , faut il définir une valeur aux variables, si oui ce n'est pas à moi de le définir mais au créateur du sujet ! lol , sinon c'est quoi ?
    Je suis au lycée et je ne peux pas le tester
    Pas besoin de tester pour voir que ton code ne fonctionne pas. Il n'y a aucun sens à utiliser une variable que tu n'as pas initialisée au préalable... Par ailleurs, ton code ne correspond pas à ce que recherche l'auteur de cette discussion qui désire manipuler des chaînes et non pas forcément faire de l'affichage.

    Thierry

  11. #11
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    ok, au moins contrairement à beaucoup d'autres, mujigka explique bien et ne cri pas, enfin je dis ca, je dis rien...

  12. #12
    Membre éclairé 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
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _SamSoft_
    ok, au moins contrairement à beaucoup d'autres, mujigka explique bien et ne cri pas, enfin je dis ca, je dis rien...
    Le fait que tu veuilles aider les autres, je trouve cela très bien.
    Mais étant donné que tu débutes en langage C, il faut éviter de poster du code complètement faux et hors sujet. Ca n’aide pas beaucoup le PO.

  13. #13
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    lol, merci, sinon je ne débute pas en C :mur; cela fait 1 an que je programme en C le seul fait est que j'étais mort de fatigue par les cours et que j'ai écris un code que je n'ai même pas testé (j'etais au lycée) sinon c'est vrai j'ai oublié d'assigner des valeurs aux variables nbr et boucle mais j'ai bien dit que je l'ai fais expres pour que le créateur du sujet choisisse ce qu'il veut mettre comme valeurs sinon mon code ne m'affiche que coucou0 or il devrait afficher sur un nombre x de fois définie dans la variable boucle coucou1, coucou2...

    Voilà le code, pourquoi ne fonctionne t-il pas, si on trouve la solution, ce sera surement bon pour mizupowa ?

    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
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
        int nbr = 0, boucle = 100;
        char coucou[255] = "coucou";
     
        while(boucle != 0)
        {
            boucle = boucle - 1;
            printf(", %s%i", coucou, nbr);
            nbr = nbr + 1;
            getch();
            return 0;
        }
    }

  14. #14
    Membre éclairé 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
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _SamSoft_
    Voilà le code, pourquoi ne fonctionne t-il pas, si on trouve la solution, ce sera surement bon pour mizupowa ?
    Ta solution ne concatène pas 2 chaines comme le demandait le PO. Elle ne fait qu'afficher deux chaines l'une à la suite de l'autre...


    Citation Envoyé par _SamSoft_
    sinon mon code ne m'affiche que coucou0 or il devrait afficher sur un nombre x de fois définie dans la variable boucle coucou1, coucou2...
    Si cela fait 1 ans que tu fais du C, je suis sûr que tu vas trouver tout seul pourquoi l'affichage ne se fait d'une fois...

  15. #15
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    ok ne me dite rien , je vais voir ca de suite et je trouverais la solution sinon c'est qu'il n'y a pas de problèmes !

  16. #16
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    soit je suis un grand abruti, infiniment grand soit je vois mal , lol, j'ai stoppé
    ma boucle dès sa premiere utilisation vraiment que suis-je vraiment ? lol
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
        int nbr = 0, boucle = 100;
        char coucou[255] = "coucou";
     
        while(boucle != 0)
        {
            printf(", %s%i", coucou, nbr);
            nbr = nbr + 1;
            boucle = boucle - 1;
        }
            getch();
            return 0;
    }

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par _SamSoft_
    STP, copile avant de poster, ça t'éviteras de te ridiculiser en public...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:17:2: warning: no newline at end of file
    main.c: In function `main':
    main.c:6: warning: 'nbr' might be used uninitialized in this function
    main.c:6: warning: 'boucle' might be used uninitialized in this function
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 6 seconds)
    0 errors, 3 warnings

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par _SamSoft_
    lol, merci, sinon je ne débute pas en C Voilà le code, pourquoi ne fonctionne t-il pas, si on trouve la solution, ce sera surement bon pour mizupowa ?
    Euh, il y a bien longtemps que les solutions on été données...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `main':
    main.c:13: warning: implicit declaration of function `getch'
    main.c:16: warning: control reaches end of non-void function
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 2 seconds)
    0 errors, 2 warnings
    Si tu ne sais pas faire, ne fait pas... Ecoute et apprends...

  19. #19
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    moi je compile sous C::B et j'ai aucun problème, je crois que vous êtes sous devcpp n'est ce pas ? déjà il faut rajouter une ligne vide à la fin du fichier et "nbr" unizial... je sais pas ce que c'est ?

  20. #20
    Membre éclairé 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
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _SamSoft_
    soit je suis un grand abruti, infiniment grand soit je vois mal , lol, j'ai stoppé
    ma boucle dès sa premiere utilisation vraiment que suis-je vraiment ? lol
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
        int nbr = 0, boucle = 100;
        char coucou[255] = "coucou";
     
        while(boucle != 0)
        {
            printf(", %s%i", coucou, nbr);
            nbr = nbr + 1;
            boucle = boucle - 1;
        }
            getch();
            return 0;
    }
    Tout cela est hors sujet, mais pourquoi faire compliquer lorsqu'on peut faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
     
    int main( void )
    {
        int nbr = 0, boucle = 100;
        while(boucle--)
            printf("coucou%i\n", nbr++);
        return 0;
    }

Discussions similaires

  1. [c#] convertion string et entier
    Par zidenne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/09/2006, 11h31
  2. string en entier et entier en string
    Par mathher dans le forum C++
    Réponses: 2
    Dernier message: 14/04/2006, 12h11
  3. Concatenation de 2 entiers en SQL (sous SQL Server)
    Par emazes dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/08/2005, 09h28
  4. [Débutant(e)]convertir un string en entier
    Par harris_macken dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2005, 07h20
  5. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33

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