begin process at 2012 02 13 05:49:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

trouver un char dasn une string et le convertir...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

trouver un char dasn une string et le convertir...

jeudi 3 février 2005 à 20:43:17 | trouver un char dasn une string et le convertir...

Spiffou

bonjour à tous,

je suis bloqué sur un problème de C++ avec les strings et les vectors.
j'ai un vector contenant des std::string, et je souhaiterais extraire de ces strings un de leur caractere afin de le convertir en int.
en gros j'ai string s="mot 1";
et je veux arriver à la fin à int x avec x=1, sachant que ma string est contenue dans un vector.

voila ce que j'ai fait qui ne marche pas:
    vector<string> strvect;
    char * debut;
    debut = (char*)malloc(50*sizeof (char));
    char * buffer;
    buffer = (char*)malloc(50*sizeof (char));

    debut = strdup("mot1 mot2 mot3 mot4 mot5");

// remplissage du vector
    buffer = strtok(debut, " ");
    while (buffer != NULL)
    {
        strvect.push_back(buffer);
        buffer = strtok(NULL, " ");
    }

    for (int i=0;i<5;i++)
    {
        cout<<strvect[i]<<endl;
    }

    // recuperation du numero de chaque mot
    char c;
    string s;
    s = strvect.pop_back();
    cout<<s;
    strcpy(buffer , s.c_str());
    c = s[3];
    printf("xx->%c\n",c);


ps: je vois bien que s ne recoit pas la bonne valeur et declenche le crash mais je ne sais pas comment faire...
si quelqu'un peut m'aider ca serait bien sympa de sa part.

Merci d'avance à vous.
jeudi 3 février 2005 à 21:15:12 | Re : trouver un char dasn une string et le convertir...

bayeto

Membre Club
deux chose d'abord: inutile d'allouer de la mémoire pour debut et buffer. Par contre il faut libérer debut par un free puisque tu appelle strdup.

Je te propose cette boucle:

for(int i=0;i<5;i++)
{
   string &s = strvect[i];
   int c = (int) s[3] - '0';
   cout<< strvect[i] << " x=" << c
<< endl;
}

jeudi 3 février 2005 à 23:09:44 | Re : trouver un char dasn une string et le convertir...

anarchysniper

Bete question : pourquoi un vector ?

C'est tellement plus compliqué qu'un tableau !

Je n'ai jamais trouvé d'avantage à ce système ...

Il doit il y en avoir un mais il m'échappe !

Quelqu'un pourrait-il m'éclairer ?
jeudi 3 février 2005 à 23:11:31 | Re : trouver un char dasn une string et le convertir...

Spiffou

avantage du vector empiler et depiler dynamiquement des elements c'est dejà pas mal non?
pour les autres j suis pas un pro du vector.
^^
jeudi 3 février 2005 à 23:18:10 | Re : trouver un char dasn une string et le convertir...

anarchysniper

Oui mais quelques procédures simple peuvent permettre à un tableau d'imiter ce comportment, sans les ennuis d'allocation de mémoire inhérents aux vecteurs.
vendredi 4 février 2005 à 14:00:10 | Re : trouver un char dasn une string et le convertir...

Atmaweapon

le truc, c'est que les "quelques procédures" sont déjà implémentées dans les vector ... autant ne pas réinventer la roue...

de plus, il doit exister des modèles permettant de spécifier une 'bonne' taille a chaque réallocation de maniere a trouver un compris entre 'temps jusqu'a la prochaine réallocation' et 'espace mémoire utilisé'

samedi 5 février 2005 à 16:14:37 | Re : trouver un char dasn une string et le convertir...

steve_clamage

il n'y a que des avantage à utiliser std::vector quand la taille n'est pas connue (quand elle est il est naturellement plus performant d'utiliser un tableau)

std::vector permet comme ca l'a été dit d'empiler/de dépiler les éléments de facon tres optimisée et en garantissant un temps d'accés constant (tableau dynamique en interne). Un deque permet en plus d'empiler/de dépiler au début (double ended queue) mais avec un temps d'accés légerement superieur et sans reserve de mémoire possible (peut etre implementer avec une liste de tableaux).

string s = "mot 1";
istringstream iss( s, s.find(' ') );
int x;
iss >> x


Cette discussion est classée dans : buffer, string, char, vector, debut


Répondre à ce message

Sujets en rapport avec ce message

Pb vector de vector de char ! [ par nicolas66 ] Ben g un pti pb avec ce prog en Cpp, à la compile ca passe mé à l'execution ca plante !! si vous savé pk merci d'avance !(c censé initialisé un buffer char* -> string [ par oRTEEZ ] Voila tout est dans le sujet.En fait j'ai un nom de fichier dans un buffer et j'aimerai ajouter des caractere au nom.ex: *buffer = "voila.jpg"apres tr conversion string et char, probleme [ par flowneo ] Bonjour, soit le code suivant, qui convertit une chaine string en char: #include #include #include using namespace std; int main (){ string com Problème de pointeur : erreur non-lvalue in assignment [ par AmStErDaMnEd ] Bonjour,    j'ai récupéré un bon de code pour pouvoir splitter une chaine. Cela fonctionne sans pointeur. Cependant, j'ai besoin de récupérer un char* probleme avec une chaine de caractere [ par joben22 ] Bonsoir, j'ai un petit soucis avec une fonction que j'essaie de coder. En fait, je lis le contenue d'un fichier, le place dans un char* et la j'aimer Serialiser une std::map (sans utiliser Boost) [ par tom24 ] Bonjour,voila pour un projet, je dois sérialiser en binaire des objets. Mes objets comprennent des string, mais aussi une map, et je ne sais pas vraim Problème pour stoker une string dans un char* [ par Faroww ] Salut, Alors voici mon problème j'utilise une OpenFileDialog (Parcourir)pour permette a l'utilisateur de choisir un fichier. Je récupéré le patch du problème d'allocation mémoire dans ma classe [ par Bub325 ] Salut, j'ai un problème dans le code suivant au niveau de l'allocation mémoire de tmp.a = new char... dans operator+, et je ne sait pas du tout pourqu getoenfilename -> ??? [ par stefbuet ] salut,sur une source (http://www.cppfrance.com/code.aspx?ID=28478)j'ai extrait une fonction de la librairy créé et ais essayé de la faire fonctioner,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,101 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales