当前位置: 首页 > web >正文

C++中,字符与字符串直接拼接(重点,易错)

在 C++ 中,`string s; char ch; s = s + ch;` 是可以的,但需要理解其背后的操作原理。
1. `s` 是一个 `std::string` 类型的变量,`ch` 是一个 `char` 类型的变量。
2. 表达式 `s = s + ch;` 实际上是将 `s` 字符串和字符 `ch` 拼接在一起,并将结果重新赋值给 `s`。

### 为什么可以:
在 C++ 中,`std::string` 提供了与字符相加的操作支持。具体来说,`std::string` 类重载了 `+` 运算符,使得我们可以将一个 `char` 类型的单个字符添加到 `std::string` 末尾。这个操作会将 `char` 类型转换为一个长度为 1 的字符串,然后进行拼接。

例如,如果 `s = "hello"`,`ch = '!'`,那么执行 `s = s + ch;` 后,`s` 的值会变成 `"hello!"`。

### 示例代码:
```cpp
#include <iostream>
#include <string>

int main() {
    std::string s = "Hello";
    char ch = '!';

    // 将字符 'ch' 加到字符串 's' 的末尾
    s = s + ch;

    std::cout << s << std::endl;  // 输出 "Hello!"
    return 0;
}
```

### 重要的注意事项:
- `std::string` 已经重载了 `+` 运算符,允许字符与字符串的拼接。
- 这会创建一个新的字符串对象,其中包含原来的字符串加上字符 `ch`。
  
所以,`s = s + ch;` 是完全合法的,执行后会把字符 `ch` 加到字符串 `s` 的末尾。

         

      

http://www.xdnf.cn/news/12679.html

相关文章:

  • 【MySQL】三大范式
  • 【工作记录】接口功能测试总结
  • jenkins 持续集成环境从0到1搭建全过程
  • PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
  • Oracle 19c RAC集群ADG搭建
  • MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
  • 计算机是如何⼯作的
  • 408第一季 - 数据结构 - 树与二叉树II
  • 《Brief Bioinform》: 鼠脑单细胞与Stereo-seq数据整合算法评估
  • 【Java实例-英雄对战】Java战斗之旅,既分胜负也决生死
  • 台式机电脑CPU天梯图2025年6月份更新:CPU选购指南及推荐
  • Canal环境搭建并实现和ES数据同步
  • App Search 和 Workplace Search 独立产品现已弃用
  • Cursor实现用excel数据填充word模版的方法
  • Fetch与Axios:区别、联系、优缺点及使用差异
  • 使用 C/C++ 和 OpenCV 提取图像的感兴趣区域 (ROI)
  • vue3+dify从零手撸AI对话系统
  • JavaWeb的一些基础技术
  • 在Ubuntu上使用 dd 工具制作U盘启动盘
  • 使用Transformer模型进行时间序列预测的完整解决方案,满足预测误差≤1.5%和注意力权重可视化的要求
  • GitHub 趋势日报 (2025年06月06日)
  • 2025年- H76-Lc184--55.跳跃游戏(贪心)--Java版
  • 有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
  • 信息最大化(Information Maximization)
  • Go语言进阶④:Go的数据结构和Java的有啥不一样
  • 光学字符识别(OCR)理论概述与实践教程
  • 动目标显示处理解析一(脉冲对消器)
  • Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程
  • 前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)
  • 数据类型 -- 字符