You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何实现多字符串拼接如"123"+"456",解决VS报错C2110、E2140?

报错原因

你遇到的报错是C++语法规则限制导致的:

  • 双引号包裹的字符串默认是C风格const char*类型常量,并非std::string类型
  • C++没有为两个const char*类型定义加法运算符,直接对两个字符串常量执行+运算本质是尝试对两个指针地址相加,属于非法操作,对应触发C2110(无法对两个指针执行加法)、E2140(表达式类型不符合加法要求)错误。

解决方法

方法1:显式转换首个字符串为std::string类型

只要确保加法运算的第一个操作数是std::string类型,后续的+会自动调用std::string的重载加法运算符,依次拼接后续的C风格字符串:

std::string a = std::string("2323") + "22323" + "232332";

方法2:使用C++14新增的std::string字面量后缀s

引入std::string_literals命名空间后,后缀s标记的字符串会自动识别为std::string类型,写法更简洁:

using namespace std::string_literals;
std::string a = "2323"s + "22323" + "232332";

方法3:用append方法分步拼接

如果需要动态拼接多段字符串,也可以使用std::string自带的append方法:

std::string a;
a.append("2323");
a.append("22323");
a.append("232332");

方法4(C++20及以上版本支持):使用std::format拼接

如果你的编译器支持C++20标准,可以用std::format更清晰地拼接多段内容:

std::string a = std::format("{}{}{}", "2323", "22323", "232332");

内容的提问来源于stack exchange,提问作者Altman Jeffry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:39:04