掌握C++ string类的常用函数
在C中std::string类basic_stringchar的特化是处理字符串的核心工具。相比于传统的C风格字符串它提供了安全、灵活且功能丰富的接口。本文将系统梳理string类中最常用的成员函数帮助你写出更简洁、易读且高效的代码。1. 构造与赋值构造函数和赋值运算符是创建和修改字符串的基础。默认构造与空串构造std::string s1;// 创建空字符串std::strings2();C风格字符串构造std::string s3Hello, World!;拷贝构造与移动构造std::string s4s3;// 拷贝构造std::string s5std::move(s3);// 移动构造赋值运算符s1New Value;s1s2;// 赋值另一个strings1c;// 赋值单个字符赋值函数s1.assign(Assign this string);s1.assign(5,a);// 生成 aaaaaassign()函数比运算符更灵活支持更多参数形式[[1]][[2]]。2. 容量管理函数这些函数用于查询或调整字符串的存储空间。长度查询std::size_t lens1.length();// 与size()等价boolisEmptys1.empty();// 判断是否为空容量相关s1.reserve(100);// 预分配至少100个字符的空间减少后续扩容次数std::size_t caps1.capacity();// 当前分配的容量s1.shrink_to_fit();// 申请回收未使用的内存空间大小调整s1.resize(10,*);// 将长度调整为10不足则填充*s1.clear();// 清空字符串长度变为0合理使用reserve()和shrink_to_fit()可以显著提升大字符串拼接的性能[[3]][[4]]。3. 字符访问与修改直接对单个字符进行操作的函数。下标与范围检查charc1s1[0];// 不检查越界charc2s1.at(0);// 检查越界抛出异常首尾元素charfirsts1.front();charlasts1.back();推入与弹出s1.push_back(!);// 末尾追加s1.pop_back();// 删除末尾字符4. 字符串搜索与操作这是string类最强大的部分涵盖了查找、插入、删除、替换等功能。查找函数std::size_t poss1.find(World);// 正向查找std::size_t rposs1.rfind(l);// 反向查找std::size_t firstOfs1.find_first_of(aeiou);// 查找第一个元音字符提取子串std::string subs1.substr(0,5);// 提取前5个字符插入与删除s1.insert(5,INSERT);// 在索引5处插入子串s1.erase(5,3);// 删除从索引5开始的3个字符替换与追加s1.replace(0,5,REPLACE);// 替换前5个字符s1.append( More text);// 追加s1 and even more;// 使用追加find()系列函数是字符串搜索的核心返回std::string::npos表示未找到[[5]][[6]]。5. 迭代器与非成员函数除了成员函数string类还支持迭代器和流操作。迭代器for(autoits1.begin();it!s1.end();it){std::cout*it;}// 或者使用范围for循环for(charc:s1){std::coutc;}流输入输出std::couts1std::endl;// 输出std::cins2;// 输入遇空格结束std::getline(std::cin,s3);// 输入整行比较函数intcmps1.compare(s2);// 或者直接使用运算符if(s1s2){...}std::string支持完整的迭代器接口允许与STL算法无缝结合[[7]][[8]]。总结掌握以上这些函数你就能应对绝大多数的字符串处理需求。从基本的拼接、、append到复杂的搜索find、rfind和替换replacestd::string提供了一个安全、易用且高效的API。希望这篇文章能帮你在C编程之路上走得更稳、更远

相关新闻

双剑合璧:基于模型剪枝与知识蒸馏的YOLOv7-tiny嵌入式部署实战指南

双剑合璧:基于模型剪枝与知识蒸馏的YOLOv7-tiny嵌入式部署实战指南

摘要 在资源受限的嵌入式设备上部署目标检测模型一直面临着模型体积、推理速度与检测精度之间的权衡困境。本文深入探讨了如何将模型剪枝与知识蒸馏两种模型压缩技术相结合,对YOLOv7-tiny进行极致优化,使其能够在树莓派4B、Jetson Nano等嵌入式平台上实现实时目标检测。通过…

2026/7/3 8:55:36 阅读更多 →
计算机毕业设计java基于Vue.js的工资管理系统的设计与实现 基于SpringBoot的智慧游乐园综合运营管理平台设计 游乐园项目预约与排队叫号一体化管理系统的研发

计算机毕业设计java基于Vue.js的工资管理系统的设计与实现 基于SpringBoot的智慧游乐园综合运营管理平台设计 游乐园项目预约与排队叫号一体化管理系统的研发

计算机毕业设计java基于Vue.js的工资管理系统的设计与实现1y8uc9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着旅游经济的快速发展和人们休闲娱乐需求的日益增长&#xff0…

2026/7/4 11:08:05 阅读更多 →
C语言函数三要素及函数体

C语言函数三要素及函数体

C语言函数三要素 C语言函数的三要素是函数声明、函数定义和函数调用。这三部分共同构成了函数的完整使用流程。 函数声明 函数声明也称为函数原型,用于告诉编译器函数的名称、返回类型和参数类型。函数声明通常在头文件或代码文件的开部分出现。 语法格式&#xff1…

2026/5/17 11:04:14 阅读更多 →

最新新闻

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多…

2026/7/4 22:12:22 阅读更多 →
postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍!

postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍!

postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍! 【免费下载链接】postcss-write-svg Write SVGs directly in CSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-write-svg 你是否厌倦了在CSS和SVG文件之间…

2026/7/4 22:12:21 阅读更多 →
3大架构优化策略:如何构建高可用AI网关服务

3大架构优化策略:如何构建高可用AI网关服务

3大架构优化策略:如何构建高可用AI网关服务 【免费下载链接】new-api A unified AI model hub for aggregation & distribution. It supports cross-converting various LLMs into OpenAI-compatible, Claude-compatible, or Gemini-compatible formats. A cent…

2026/7/4 22:12:21 阅读更多 →
Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能

Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能

Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能 【免费下载链接】agentskills Specification and documentation for Agent Skills 项目地址: https://gitcode.com/GitHub_Trending/ag/agentskills Agent Skills是GitHub推荐项目精选(…

2026/7/4 22:10:20 阅读更多 →
RestFB实战教程:10个常见Facebook API操作示例

RestFB实战教程:10个常见Facebook API操作示例

RestFB实战教程:10个常见Facebook API操作示例 【免费下载链接】restfb RestFB is a simple and flexible Facebook Graph API client written in Java. 项目地址: https://gitcode.com/gh_mirrors/re/restfb 想要在Java应用中快速集成Facebook功能&#xff…

2026/7/4 22:10:20 阅读更多 →
如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅

如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅

如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅 【免费下载链接】leela-chess **MOVED TO https://github.com/LeelaChessZero/leela-chess ** A chess adaption of GCPs Leela Zero 项目地址: https://gitcode.com/gh_mirrors/le/leela-chess L…

2026/7/4 22:08:18 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻