为什么我无法使用append()方法向C++ string字符串添加char类型变量?
报错原因
std::string的append成员函数本身没有提供仅接收单个char类型参数的重载,你传入单个char变量时编译器找不到匹配的方法,所以才会抛出这个错误。而你注释里写的push_back本来就是专门用来向string末尾追加单个字符的方法,所以可以正常运行。
append的常用合法重载如下:
- 追加另一个完整的string对象:
append(const string& str) - 追加C风格字符串:
append(const char* s) - 追加C风格字符串的前n位:
append(const char* s, size_t n) - 向末尾追加n个相同的字符:
append(size_t count, char ch)
如果你一定要用append实现追加单个字符的需求,可以调用上面最后一个重载,写法如下:
word.append(1, temp);
日常使用中优先选择push_back(temp)即可,写法更简洁也更符合语义。
内容的提问来源于stack exchange,提问作者yuwanzi
相关产品推荐
相关产品推荐

