我正在做字符串解析,实际上我想做的是这样的事情:
string signature = char[index+1] + '/' + char[index+2];但是你不能在char上做字符串连接,所以这就引出了这个问题,我如何在char上模拟连接呢?
我知道C++中的字符串库已经附加了,但我不认为这适用于我的情况。有什么想法吗?
发布于 2013-12-08 03:40:07
您可以将字符连接到std::string,只需要一个操作数作为std::string,否则就会添加整数。
std::string signature = std::string() + char_array[index+1] + '/' + char_array[index+2];注意,只有当链中的第一个或第二个操作数是std::string时,这才有效。这将导致对operator+的第一次调用返回一个std::string,其余的也会随之进行。因此,这并没有给出预期的结果:
std::string signature = char_array[index+1] + '/' + char_array[index+2] + std::string();发布于 2013-12-08 03:48:12
在C++11中,您实际上可以:
std::string signature{chars[index+1], '/', chars[index+2]};不确定这在实际代码中有多有用,但它处理的是您的示例。
发布于 2013-12-08 04:09:36
除了Steve和Benjamin的解决方案之外,您还可以使用std::stringstream
std::stringstream ss;
ss << char_array[index + 1] << '/' << char_array[index + 2];
std::string s = ss.str();https://stackoverflow.com/questions/20449590
复制相似问题