Convertir tableau d'entier en chaine de caractere

Signaler
Messages postés
6
Date d'inscription
lundi 16 juin 2008
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
bonjour,

comment feriez vous pour transformer un tableau d'entier (int tab[8192]) en une chaine de caractere.

ou autrement y a t il une fonction qui permette d'ecrire un tableau d'entier directement comme ilwrti en vb.

merci

9 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut

Moi j'utiliserai la fonction itoa() pour chaque element de ton tableau.

A+
Messages postés
14869
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 novembre 2020
93
Hello,
Je ferais pareil. Si c'est en C++, j'utiliserais les stringstream

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
6
Date d'inscription
lundi 16 juin 2008
Statut
Membre
Dernière intervention
24 juin 2008

vous n'avez pas une autre idée car mon compilateur ne me permet pas d'utiliser la fonction itoa?
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Il faut inclure la lib standard pour pouvoir utiliser itoa dans ton prog.
#include <stdlib.h>

A+
Messages postés
6
Date d'inscription
lundi 16 juin 2008
Statut
Membre
Dernière intervention
24 juin 2008

la fonction itoa n'existe pas dans tous les compilateurs(pas dans le mien)
comment feriez vous pour transformer un tableau d'entier en un chaine avec la fonction sprintf.
Messages postés
14869
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 novembre 2020
93
A vérifier, mais pour passer de la valeur numérique au caractère, il suffit de rajouter 48

int iQuatre=4;
char cQuatre=(char)iQuatre+48;

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
La seul fonction du compilo est de generer du code machine par de faire du itoa. itoa est ecrit dans la lib standard la meme ou est ecrit sprintf...
Pour la fonction sprintf:

char Buf[10];
int Val=333;
sprintf(Buf,"%d",Val);

A+
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
itoa n'existe pas dans la stdlib de Linux entre autre.
Voici une fonction perso fait il y a quelque temps justement pour pallier à ce manque sans avoir à utiliser sprintf.

Elle fait la même chose que:
itoa(val, dest, 10);

char *myitoa_base10 (int val, char *dest)
{
    char *c = dest, *ret;
    int q = val;

    if(!q) {
        *dest++ = '0';
        *dest = 0;
        return dest;
    }

    if(q < 0)  q = -q;

    while(q) {
        int r = q%10;

        q /= 10;

        *dest++ = r+'0';
    }

    if(val < 0) *dest++ = '-';

    ret = dest;
    *dest-- = 0;

    while(c < dest) {
        char tmp = *c;
       
        *c++ = *dest;
        *dest-- = tmp;
    }

    return ret;
}

C++ (@++)
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Petite précision.
La valeur de retour est un pointeur sur fin de chaine (sur le 0).

C++ (@++)