c – std :: string”:无法添加两个指针
作者:互联网
为何分配
std::string s="aaa"+1
工作得很好
std::string s="aaa"+1+"bbb"
获取错误错误14错误C2110:”:无法添加两个指针
解决方法:
没有运算符来连接C字符串. C字符串只是指针(const char *),所以如果你给它添加一个数字,它只会增加指针.然后将其转换为C字符串:
std::string s = "aaa" + 1
|=======|
"aa"
const char *
|==============|
"aa"
std::string
然后在第二步中失败,当你尝试连接第二个字符串时,因为虽然向指针添加一个常量仍然有意义(即使不是你的情况),但你无法理解添加两个指针.
"aaa" + 1 + "bbb"
|========|
"aa"
const char *
|===|
const char *
为了确保您实际连接并且不对指针求和,我建议使用字符串流.这也可以确保您的常数被正确转换为字符串.
std::stringstream ss;
ss << "aaa" << 1 << "bbb";
std::string s = ss.str();
这适用于具有运算符<<超载.
标签:c,visual-c,stdstring 来源: https://codeday.me/bug/20190724/1526863.html