首选从char(非char*)到std :: string的转换

pyt*_*hor 42 c++ string type-conversion char

我有一个char普通的老字,我想变成一个std::string. std::string(char)当然不存在.我可以创建一个char数组并将其复制,我可以通过字符串流或许多其他小环形路径.目前,我更喜欢boost::lexical_cast,但即使这对于这个简单的任务来说似乎太冗长了.那么首选方式是什么?

Dan*_*her 76

std::string有一个带数字和字符的构造函数.角色将重复给定的次数.因此,你应该使用:

std::string str(1, ch);
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案.但是我不喜欢这个构造函数的是我没有用它来记住参数的顺序.如果你让它们切换,它仍然可以编译. (16认同)
  • 对于一个字符数组@Maxim,使用带有指针和字符数的构造函数.在你的例子中,`std :: string(x,3)`. (4认同)
  • @Fred Larson这当然是我尝试这个解决方案时发生的事情. (3认同)
  • 可怕的参数顺序.为什么不只是允许一个char和没有count参数? (2认同)

Gau*_*ant 8

要添加到答案中,您可以简单地使用初始化列表

std::string str = {ch};
Run Code Online (Sandbox Code Playgroud)


mes*_*ger 5

只使用带有char的重载?

string(1, 'A')