Rechercher : dans
Par :

[C/C++] Cast d'un string vers un char *

Dernière réponse le 19 fév 2009 à 14:53:47 Z3uS-Su3Z, le 30 mai 2005 à 15:16:30 
 Signaler ce message aux modérateurs

Salut à tous,

Question très simple je veux caster un std::string vers un char *, mais comment faire ?

Il y a bien string.c_str() qui me le cast en const char *, mais il me faut absolument un char *.

Voilà :)

Meilleures réponses pour « [C/C++] Cast d'un string vers un char * » dans :
Télécharger Witch VoirN'avez vous jamais voulu vous déplacer en va-et-vient entre deux fenêtres qui n'appartiennent pas toujours à la même application ? Si c'est le cas, Witch est faite pour vous ! Il est vrai que sur Mac vous pouvez utiliser "Exposé", mais si vous êtes...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

Nashouille, le 30 mai 2005 à 15:26:46
  • +1

char* un;
string deux;
un = (char*)deux.c_str();

Ca doit fonctionner ça normalement.

Répondre à Nashouille

2

blurk, le 30 mai 2005 à 20:56:50

Salut

en fait, on fait :

char *un= deux.c_str();

ce qui du même coup alloue un espace pour un, mais comme en
réalité c'est l'espace mémoire de "deux"
on est à la merci de la durée de vie de ce dernier, et en plus il va y avoir un problème entre char * et const char.

le mieux c'est d'utiliser string. h et de faire
strcpy(un, deux.c_str());

après avoir alloué suffisament de mémoire pour char * un;

char * un =(char *) malloc(taille_de_la chaine);

et en fin de fonction :
free(un);



cordialement

¤

Répondre à blurk

3

titi, le 30 déc 2006 à 02:39:31
  • +1

De facon plus simple en c++, avec le cast const_char :)
exemple : const_cast<char*>(str.c_str())

Répondre à titi

4

 salutecgam, le 19 fév 2009 à 14:53:47

Lol

Répondre à salutecgam