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 :

Conversion d'un tableau int en tableau char


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Conversion d'un tableau int en tableau char
    Bonjour,


    Je voudrai créer une fonction qui lit un tableau int (source) et transforme chaque byte du tableau int en caractère avec atoi dans un tableau de destination char.


    J'ai écris ce début de fonction, mais je suis bloqué pour continuer, pourriez vous m'aider svp ?

    intTable2charTable attend qu'on lui indique le nom d'un tableau int précédemment existant ( source ) , un nom de tableau char vierge existant ( destination ) et une longueur indiquant le nb de byte à convertir :

    L'idée serait la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intTable2charTable ( B, A, 25 );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int A[25];
    char B[25+1];         // 25 + caractère de fin /0
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    static void intTable2charTable (const char * char_table, size_t size, const int * int_table)
     
    {
        BYTE i, *p;
    	p = (BYTE*)&int_table;
     
        for(i = 0; i < size; ++i)
    	{
    // Que mettre ici pour que chaque byte du tableau soit transformé avec
    // atoi et stocké dans le tabkeau char de destination ?
        	}
    }
    Merci de votre aide,

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Je voudrai créer une fonction qui lit un tableau int (source) et transforme chaque byte du tableau int en caractère avec atoi dans un tableau de destination char.
    Ce n'est pas clair, atoi fait l'inverse... Il prend un tableau de caractères et renvoit un entier...

    Jc

  3. #3
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Il peut peut être faire un cast (la conversion est peut être même implicite) des valeurs du tableau d'int afin de les stocker dans le tableau de char ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Par défaut
    il faut utiliser itoa, cette fonction prend un int en paramètre et renvoie un char. je pense que c'est ce que tu cherche

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Est ce que la lecture de chaque ligne du tableau int vous semble correcte, je ne suis pas sûr de moi et la conversion ne se fait pas :

    Quand je lit chaque ligne du tableau de caractères char_table, je récupère des caractères inatendus à l'interrieur ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BYTE i, *p;
    	p = (BYTE*)&int_table

    Voici ma fonction complète :
    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
    18
     
     
    int int_table[25];
    char char_table[25][2+1];
     
    static void intTable2charTable (const char * char_table, size_t size, const int * int_table)
     
    {
        BYTE i, *p;
    	p = (BYTE*)&int_table;
     
        for(i = 0; i < size; ++i)
    	{
     
                  itoa(int_table[i], char_table[i]);
     
        	}
    }
    Merci de votre aide,

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Par défaut Entier vers caractères
    Bonjour,
    Je ne comprends pas très bien votre but.Si votre but est de récupérer les bytes qui composent un entier,si un int fait deux octets dans votre système,vous avez besoin de deux caractères pour chaque int.Il suffit alors de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char c,d;
    char* p;
    int i;
    p = (char*)&i;
    c = *p;
    p = p+1;
    d = *p;
    //Si on a un tableau ,on fait une boucle 
    //avec un second tableau

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2015, 11h48
  2. Passer d'un int à un tableau de char
    Par JustyDark dans le forum C
    Réponses: 16
    Dernier message: 25/03/2015, 11h27
  3. Conversion d'"int" en tableau de binaires ?
    Par muquet dans le forum Débuter
    Réponses: 8
    Dernier message: 04/08/2009, 15h16
  4. Conversion de Int en Tableau d'entier ?
    Par sheed dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 04/01/2008, 15h21
  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