web-dev-qa-db-fra.com

C ++ convertir de 1 caractère en chaîne?

Je n'ai vraiment pas trouvé de réponse aussi proche ...

le chemin inverse est assez simple comme str [0]

Mais je n'ai besoin que de lancer un seul caractère sur une chaîne ...

comme ça:

char c = 34;
string(1,c);
//this doesn't work, the string is always empty.

string s(c);
//also doesn't work.

boost::lexical_cast<string>((int)c);

//also return null
105
weeo

Tous

string s(1, c); std::cout << s << std::endl;

et

std::cout << string(1, c) << std::endl;

et

string s; s.Push_back(c); std::cout << s << std::endl;

a travaillé pour moi.

163
Massa

Honnêtement, je pensais que la méthode de casting fonctionnerait bien. Comme ce n'est pas le cas, vous pouvez essayer le stringstream. Un exemple est ci-dessous:

#include <sstream>
#include <string>
stringstream ss;
string target;
char mychar='a';
ss << mychar;
ss >> target;
8
Mallen