web-dev-qa-db-fra.com

Conversion de chaîne en chaîne de caractères en c ++

Je suis string pour convertir ce string="Apple", et je veux le mettre dans une chaîne de caractères de ce style, char *c, qui contient {a,p,p,l,e,'\0'}. Quelle méthode prédéfinie devrais-je utiliser? Merci d'avance.

11
teamaster

.c_str() renvoie un const char*. Si vous avez besoin d'une version mutable, vous devrez en produire une copie vous-même.

22
Yann Ramin
vector<char> toVector( const std::string& s ) {
  string s = "Apple";  
  vector<char> v(s.size()+1);
  memcpy( &v.front(), s.c_str(), s.size() + 1 );
  return v;
}
vector<char> v = toVector(std::string("Apple"));

// what you were looking for (mutable)
char* c = v.data();

.c_str () fonctionne pour immuable. Le vecteur gérera la mémoire pour vous. 

9
bytemaster
string name;
char *c_string;

getline(cin, name);

c_string = new char[name.length()];

for (int index = 0; index < name.length(); index++){
    c_string[index] = name[index];
}
c_string[name.length()] = '\0';//add the null terminator at the end of
                              // the char array

Je sais que ce n'est pas la méthode prédéfinie, mais j'ai pensé que cela pourrait néanmoins être utile à quelqu'un. 

0
Ritchie Shatter