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 :

String dans un tableau int


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 48
    Points
    48
    Par défaut String dans un tableau int
    Bonjour, je voulais savoir comment on pouvais faire pour transformer une string en un tableau de int ?

  2. #2
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    Les string sont des tableaux de char.
    Les char sont des entiers.
    Donc tu as déjà un beau tableau de int, terminé par le caractère '\0'.

    Quand tu affiches un élément il faut juste que tu transfrome le char en int, parceque sinon tu voir la représentation ASCII.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 48
    Points
    48
    Par défaut
    Je doit faire comme ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char a = '9';
    int b = ((int) a)-48;

  4. #4
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    Oui, pour transformer un char en int ça va, tu peux aussi utiliser les operateur de transtypage, mais là je ne crois pas que ce sois vraiment nécessaire...

    Tu peux faire ça aussi, c'est plus compréhensible:

  5. #5
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par MatRem
    Oui, mais pour ca, il faut savoir ce qu'il fait car il n'est pas force de connaitre le caractere ASCII correspondant au nombre a soustraire!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char carac = 'a' ;
    int a = 10 ;
    int b = (int) carac - a ;
    et la, il peut soustraire n'importe quel nombre...
    développeur en folie cherche à ... développer encore plus

  6. #6
    Nouveau membre du Club Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par maminova77
    Bonjour, je voulais savoir comment on pouvais faire pour transformer une string en un tableau de int ?
    comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int * string2int(char * chaine)
    {
         int *tab=new int[strlen(chaine)];
     
         for (short i=0;i<8;i++)
             tab[i]=(int)(chaine[i]);
     
         return (tab);
    }

    et tu utilises cette fonction comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int * valeurEnInt = string2int(valeurEnString);

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Ta fonction string2int() demande un pointeur de caractéres alors que tu lui passe une string !!!

    De plus il vaut mieux écrire la boucle sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (short i (0); i < 8; ++i)
    Et la valeur ne sera pas conservé avec cette transformation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[i]=(int)(chaine[i]);
    Une fonction qui "marche" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int String2Int (string & Str)
    {
        int Val (0);
        for (short i (0); i < Str.size(); ++i)
            Val = Val*10+Str[i]-'0';
        return Val;
    }

  8. #8
    Nouveau membre du Club Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Une fonction qui "marche" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int String2Int (string & Str)
    {
        int Val (0);
        for (short i (0); i < Str.size(); ++i)
            Val = Val*10+Str[i]-'0';
        return Val;
    }

    la mienne MARCHE aussi même si elle n'est pas bien optimisée, espèce d'olibrius à pistons !!!

  9. #9
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Désolé je ne voulais pas te vexer

    Mais la tienne ne marche pas je l'ai essayé et je t'ai dit pourquoi au dessus ^^

    EDIT : On aurait pu optimiser un peu plus en stockant Str.size() dans une variable car à chaque fois size() parcourt la chaine pour compter le nombre d'élément !

  10. #10
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    oui, mais ce qu'il peut faire, c'est simplement demander une string (par valeur donc) et retourner une autre string, non?
    développeur en folie cherche à ... développer encore plus

  11. #11
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Le but n'est pas de retourner une autre string mais de retourner un int

  12. #12
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    mille excuse, je m'etais egare...
    développeur en folie cherche à ... développer encore plus

  13. #13
    Nouveau membre du Club Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Tipoun
    Désolé je ne voulais pas te vexer

    Mais la tienne ne marche pas je l'ai essayé et je t'ai dit pourquoi au dessus ^^

    EDIT : On aurait pu optimiser un peu plus en stockant Str.size() dans une variable car à chaque fois size() parcourt la chaine pour compter le nombre d'élément !
    Non non je suis pas vexé je disais juste que chez moi ça marche voici mon programme en entier

    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
    19
    20
    21
    22
    23
    24
    25
     
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
    int * string2int(char * chaine)
    {
         int *tab=new int[strlen(chaine)];     
         for (short i=0;i<8;i++)
             tab[i]=(int)(chaine[i]);         
         return (tab);
    }
     
     
    int main(int argc, char *argv[])
    {
        int * valeurEnInt = string2int("radiateur");
     
        for (short i(0);i<sizeof(valeurEnInt);++i)
            cout << valeurEnInt[i] << endl;
     
        system("PAUSE>nul");
        return EXIT_SUCCESS;
    }
    c'est vrai, ça le TRANSFORME pas mais ça retourne quand même le résultat

  14. #14
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Ah ok
    Mais le sujet c'était String -> Int !!

    Ce programme a un air de C non ?

    Sans rancune

  15. #15
    Nouveau membre du Club Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Tipoun
    Ah ok
    Mais le sujet c'était String -> Int !!

    Ce programme a un air de C non ?

    Sans rancune
    Je me vengerai

    sans rancune !
    j'avais mal interpréter la question

    un air de C ? où cela ?

  16. #16
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Je me vengerai
    Ok ^^ lol !

    Les airs de C :

  17. #17
    Nouveau membre du Club Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    il est venu automatiquement quand j'ai créé le projet sous DEV-C++

  18. #18
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Ah ok

    Au fait Dev-Cpp devient un peu vieux, personnellement j'utilise Code Blocks.
    Bon désolé le sujet à un peu dévié

    La réponse est celle attendue ? Alors il faut rajouter Résolu, merci

  19. #19
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <iostream>
    et la STL appartiennent au C++.

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

Discussions similaires

  1. taille Max de string dans un tableau
    Par maxos75 dans le forum ASP
    Réponses: 3
    Dernier message: 01/08/2008, 20h31
  2. Modification des String dans un tableau par référence
    Par koukoula dans le forum Windows Forms
    Réponses: 13
    Dernier message: 06/06/2008, 15h29
  3. [c#] tableau de string dans un tableau
    Par PoZZyX dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/01/2008, 21h13
  4. Affectation de String dans un tableau ?
    Par debie1108 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 08/11/2006, 09h19
  5. Un string dans un tableau de deux dimensions...
    Par FinalSpirit dans le forum C++
    Réponses: 5
    Dernier message: 15/01/2006, 14h29

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