C++【string篇2】:从零基础开始到熟悉使用string类

本篇博客是2026年第一篇博客,祝大家2026年继续加油,少写Bug,心想事成,平平安安,奈何语文不咋的,不然肯定祝福写满,以后我也会继续努力,给大家攻克每一个知识点,调试每一个Bug.

string类对象的容量操作

函数名称 功能说明
size 返回字符串有效字符长度
length 返回字符串有效字符长度
capacit 返回空间总大小
empty 检测字符串释放为空串,是返回true,否则返回false
clear 清空有效字符
reserve 为字符预留空间
resize 将有效字符的个数该成n个,多出的空间用字符c填充

代码案例点此->

注意:

  1. size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一致,一般情况下基本都是用size()。
  2. clear()只是将string中有效字符清空,不改变底层空间大小。
  3. resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, charc)用字符c来填充多出的元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大小,如果是将元素个数减少,底层空间总大小不变。
  4. reserve(size_t res_arg=0):为string预留空间,不改变有效元素个数,当reserve的参数小于string的底层空间总大小时,reserver不会改变容量大小。

string类对象的修改操作

函数名称 功能说明
push_back 在字符串后尾插字符c
append 在字符串后追加一个字符串
operator+= 在字符串后追加字符串str
c_str 返回C格式字符串
find + npos 从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置
rfind 从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置
substr 在str中从pos位置开始,截取n个字符,然后将其返回

注意:

  1. 在string尾部追加字符时,s.push_back (c)/ s.append(1, c) / s += 'c'三种的实现方式差不多,一般情况下string类的+=操作用的比较多,+=操作不仅可以连接单个字符,还可以连接字符串。
  2. 对string操作时,如果能够大概预估到放多少字符,可以先通过reserve把空间预留好。

代码案例点此->

string类非成员函数

函数 功能说明
operator+ 尽量少用,因为传值返回,导致深拷贝效率低
operator>> 输入运算符重载
operator<< 输出运算符重载
getline 获取一行字符串
relational operators 大小比较

代码案例点此->

string类中还有一些其他的操作,这里只是列举了平时用到的,如果在需要用到其他的,不明白了查文档即可。

相关推荐
光泽雨7 小时前
ST语言与C#语言数据类型对比详解
开发语言·c#
KevinGuo4578 小时前
Selenium3自动化测试实战——基于python语言
开发语言·python·selenium
夏幻灵8 小时前
写给初次用IDEA的新人
java·ide·intellij-idea
jgyzl8 小时前
2026.1.2 Tomcat保姆级使用教程
java·tomcat
Tony Bai8 小时前
Go 考古:Go 官方如何决定支持你的 CPU 和 OS?
开发语言·后端·golang
知无不研8 小时前
.练习- Java字符串之String类创建字符串之使用equals和==判断字符串是否相等
java·开发语言
IT英语写作研习社8 小时前
一句话解释Java 8 流streams 和函数式接口、λ表达式的关系
java
hz_zhangrl8 小时前
CCF-GESP 等级考试 2025年12月认证C++二级真题解析
c++·算法·gesp·gesp2025年12月·c++二级
Slow菜鸟8 小时前
Java基础 | JWT登录场景化最优方案(一)
java·开发语言