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 :

Convertir tableau d'entiers en chaine de caracteres


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Par défaut Convertir tableau d'entiers en chaine de caracteres
    Bonjour,

    Je cherche un moyen de convertir un tableau de 10 entiers en une chaine de caractères donc un tableau de char. Il y a la fonction sprintf mais qui ne travaille que pour un entier. Le souci c'est que même en utilisant cela dans une boucle pour l'appliquer sur chaque entier du tableau, je suis bloquée. J'ai tenté des concaténation des résultats mais avec le fait de définir la taille à l'avance de la chaine de caractères, je n'arrive pas au résultat voulu . Une idée ? J'ai entendu parler de la fonction itoa mais elle n'est pas présente dans les librairies par défaut, et en plus il semble qu'elle fasse comme sprintf c'est-à-dire qu'elle ne travaille qu'avec un entier et pas un tableau d'entiers.

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Par défaut
    Plus de precisions ?

    Ton tableau d'entier c'est du style
    [12][60][5623][965][0001][8520][65534]

    et tu veux le convertir en:
    [1][2][6][0][5][6][2][3][.....]

    ou c'est dors et deja de l'ascii dans ton tableau ?

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

    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Par défaut
    Alors mon tableau d'entiers contient tout simplement un 1 ou un 0 par case
    Par exemple : [1][0][1][1][0][1]1][0][0][1]
    Et je veux obtenir une chaine de caracteres : 1011011001

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Si ton tableau ne contient que des 1 ou des 0 tu peux faire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int i;
    char tc[11];
     
    int e[]={0,0,1,1,0,0,1,0,1,0} ;
     
    for(i=0; i<10; i++)
     {
        if(e[i]) tc[i]= '1';
        else tc[i]='0';
     }
    tc[10]=0;
     
    printf("La chaine est : %s", tc);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Par défaut
    Effectivement c'est une solution auquelle je n'avais pas pensé ! Merci, ça marche bien ! Je me permets juste de faire ma difficile dans le sens où là ok ça marche avec 0 ou 1 mais si j'avais d'autres valeurs, il n'y a pas un moyen d'éviter des tests ?!

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Si la corespondance littérale de tes entiers est sur plusieurs caractères, il va tout d'abord falloir les convertir en chaine de caractére et faire ensuite une concaténation avec le précédent.

    si tes entier vont de 0 à 9 tu peux leur ajouter 48 ce qui donne le code ASCII du caractére

    for(i=0; i<10; i++) tc[i]= e[i]+48;

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

Discussions similaires

  1. Tableau d'entier et chaine
    Par mick-67 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 11/05/2011, 11h09
  2. Réponses: 15
    Dernier message: 16/08/2007, 11h47
  3. Réponses: 11
    Dernier message: 08/06/2007, 20h19
  4. [VB]Convertir une chaine de caractere en entier
    Par budylove dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/02/2006, 11h06
  5. convertir tableau d'entier en char[]
    Par nin47 dans le forum C
    Réponses: 20
    Dernier message: 12/10/2005, 20h03

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