将单个char转换为std :: string会加\ x01

时间:2018-08-13 05:56:01

标签: c++ string std c++17 sstream

我正在尝试从以dfdf1kjdkf1作为键的无序映射中接收值,其中某些字符串仅包含一个字符。我所有的输入都来自std::string,我从中获取每个值并将其转换为char,然后使用
将其转换为字符串 std::stringstream,根据documentationthis answer看来是有效的。

但是,当我这样做时,字符串会以\ x01开头(对应于值1)。这使得在地图上找不到该字符串。我的调试器还确认该字符串的大小为2,其值为“ \ x01H”。

为什么会这样,我该如何解决?

std::string result {1, character};

1 个答案:

答案 0 :(得分:6)

与链接到的问题不同,您使用的是括号{},而不是括号()。这使它成为一个初始化器列表,而不是您期望的构造器。