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

相关推荐
梦@_@境13 分钟前
面向 Spring Boot 的可观测业务流程编排引擎
java·spring boot·后端
云烟成雨TD24 分钟前
Spring AI Alibaba 1.x 系列【77】执行取消
java·人工智能·spring
醇氧32 分钟前
【Linux】Java 服务生产级部署指南:实现常驻后台、开机自启与系统服务化管理
java·开发语言
凡人叶枫1 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
JAVA面经实录9171 小时前
Netty 全套系统化学习文档(零基础到高阶面试完整版)
java·后端
weixin_523185321 小时前
Java面试高频题:Integer缓存机制与 equals、== 区别
java·缓存·面试
不吃土豆的马铃薯1 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
数据法师1 小时前
QuickSay :基于 Qt 的轻量级快捷短语管理工具
开发语言·qt
Hui Baby1 小时前
MCP SSE协议发送注意
java
仙俊红1 小时前
SpringBoot启动原理
java·spring boot·后端