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 :

concaténer deux variables de type entière


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut concaténer deux variables de type entière
    Bonjour tout le monde,

    J'aimerais concaténer les valeurs de deux variables de type int.

    la première variable contient 504 et la seconde variable contient 3116894

    j'aimerais que variable3 donne 5043116894

    Est-ce possible avec des variables entières ?

    Merci d'avance.

    beegees

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Bonjour tu peux faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    #include <math.h>
     
    int main (void)
    {
       int x = 456;
       int y = 789;
     
       x = (x * pow(10, (int)(log10(y) + 1))) + y;
       printf("%d\n",x);
       return 0;
    }
    Cordialement.

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Bonjour tu peux faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    #include <math.h>
     
    int main (void)
    {
       int x = 456;
       int y = 789;
     
       x = (x * pow(10, (int)(log10(y) + 1))) + y;
       printf("%d\n",x);
       return 0;
    }
    Cordialement.
    Bonjour Nicolas,

    Merci pour ta réponse.

    J'ai testé ton code, avec tes chiffres, ça fonctionne, pas avec les miens

    As-tu testé avec mes chiffres ?

    Merci encore pour ton aide.

    beegees

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Oui c'est normal, je pense que le type int fait 32 bits chez toi et ne dépasse pas la valeur 2 milliards et des poussières alors que ton nombre fait 5 milliards et des poussières : tu peux passer en long long (min 64 bits).

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Oui c'est normal, je pense que le type int fait 32 bits chez toi et ne dépasse pas la valeur 2 milliards et des poussières alors que ton nombre fait 5 milliards et des poussières : tu peux passer en long long (min 64 bits).
    Re,

    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    long x = 504;
       long y = 3116894;
     
       x = (x * pow(10, (long)(log10(y) + 1)) ) + y;
       printf("%ld\n",x);
    Et voici le résultat de x :

    x 748149598
    Je pense pourtant avoir bien tout changé ?

    Qu'en penses-tu ?

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    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
    #include <stdio.h>
    #include <math.h>
     
    int main (void)
    {
       long long x = 504LL;
       long long y = 3116894LL;
     
       x = (x * pow(10, (int)(log10(y) + 1)) ) + y;
       printf("%lld\n",x);
       return 0;
    }

  7. #7
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Une petite manip' du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       const int i1 = 504;
       const int i2 = 3116894;
       int i3 = 0;
       char str[20] = {0};
     
       sprintf(str, "%d%d", i1, i2);
       i3 = atoi(str);
    devrait faire l'affaire (non testé)

  8. #8
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par muad'dib Voir le message
    Une petite manip' du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       const int i1 = 504;
       const int i2 = 3116894;
       int i3 = 0;
       char str[20] = {0};
     
       sprintf(str, "%d%d", i1, i2);
       i3 = atoi(str);
    devrait faire l'affaire (non testé)
    Salut,

    Merci pour ta réponse.

    C'est assez bizzare car j'ai essayé ton code, le résultat n'est pas celui attendu mais ce résultat correspond au résultat que j'ai obtenu avec le code de Nicolas.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Concaténer deux variables
    Par cyrilherve dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2009, 14h20
  2. Concaténer deux variables
    Par Vascogil dans le forum SAS Base
    Réponses: 4
    Dernier message: 26/05/2008, 10h19
  3. [MySQL] Soustraction de deux variables de type DATETIME
    Par Sekmeth dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/01/2008, 10h11
  4. Concaténer deux variables dans une boucle
    Par jeremie74 dans le forum Flash
    Réponses: 2
    Dernier message: 22/05/2007, 19h51
  5. Concaténer deux variables ?
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 19/12/2003, 13h53

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