我真的没有找到任何接近的答案......
相反的方式非常简单,如str [0]
但是我只需要将1个字符串转换为字符串...
像这样: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
答案 0 :(得分:156)
全部
string s(1, c); std::cout << s << std::endl;
和
std::cout << string(1, c) << std::endl;
和
string s; s.push_back(c); std::cout << s << std::endl;
为我工作。
答案 1 :(得分:8)
老实说,我认为铸造方法可以正常工作。既然它没有你可以尝试stringstream。一个例子如下:
#include <sstream>
#include <string>
stringstream ss;
string target;
char mychar='a';
ss << mychar;
ss >> target;
答案 2 :(得分:3)
无论您拥有char
个变量的数量如何,此解决方案都将起作用:
char c1 = 'z';
char c2 = 'w';
std::string s1{c1};
std::string s12{c1, c2};