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 :

Fonction de conversion


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut Fonction de conversion
    Bonjour,

    Je suis à la recherche d'une fonction permettant de convertir un entier en chaine. Si par exemple j'ai un int qui vaut 128, existe-t-il une fonction qui me crache une chaine contenant "128\0" ? J'ai bien trouvé atoi() pour faire le contraire, mais dans ce sens là...

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    sprintf() ?

  3. #3
    Membre confirmé
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Par défaut
    Citation Envoyé par Pierre Maurette Voir le message
    sprintf() ?
    Comment?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut
    J'ai lu concernant itoa() qu'elle n'était pas portable et ne marchait que sous DOS. Or je suis sous Open VMS...

    J'ai aussi vu de la doc sur sprintf() mais je suis bien incapable de l'utiliser correctement (si quelqu'un peut m'expliquer )

    Merci

  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 : 48
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Ben, ça s'utilise comme printf(). La seule différence est qu'on passe l'adresse d'un tableau de caractère en 1er argument.

    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 <ctype.h>
     
    int main(void)
    {
        char tampon[12] = "";
     
        sprintf(tampon, "%d", 128);
        puts(tampon);
     
        return 0;
    }
    Attention: le tableau de caractères dont l'adresse est passée en 1er argument de sprintf() doit être suffisamment grand pour contenir la représentation de l'entier + le caractère nul de fin de chaine. C99 fournit snprintf() qui permet de se protéger contre les débordements de tampon. Avec un tableau de 12 char, on est assuré de pouvoir stocker la représentation textuelle de n'importe quel entier représenté en mémoire sur au plus 32 bits.

    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++

    +

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut
    Exact, ca fonctionne sans probleme !

    Merci !

  7. #7
    Membre confirmé
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Par défaut
    Tu as la fonction itoa() qui est, comme tu peux le remarquer, l'inverse de atoi().

    Par contre on utilise plutôt strtol() que atoi() mais je ne sais plus pourquoi. Donc c'est peut être le même problème avec itoa().

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

Discussions similaires

  1. Fonction de conversion de nombre en lettres
    Par david_chardonnet dans le forum Langage
    Réponses: 21
    Dernier message: 08/12/2021, 17h51
  2. Fonction de conversion de volume
    Par soso78 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 23/08/2005, 21h12
  3. [TestStand] Fonction de conversion...
    Par capblans dans le forum Autres langages
    Réponses: 4
    Dernier message: 26/04/2005, 08h58
  4. Réponses: 5
    Dernier message: 12/01/2005, 20h58
  5. Fonction de conversion de COLORREF en hexadécimal?
    Par charliejo dans le forum MFC
    Réponses: 4
    Dernier message: 21/02/2004, 18h25

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