新闻中心
C++如何截取字符串子串_C++ string substr函数的参数图解
substr函数用于提取子串,语法为string substr(size_t pos = 0, size_t len = npos);pos为起始索引,len为长度;若pos越界则抛出异常,否则自动截取到末尾;常用于提取扩展名或去除前缀。

在C++中,substr 是 std::string 类提供的一个成员函数,用于从原字符串中提取指定位置和长度的子串。它使用简单,但参数含义需要清楚理解,避免越界或截取错误。
substr 函数的基本语法
函数原型如下:
string substr(size_t pos = 0, size_t len = npos) const;该函数返回一个新字符串,是原字符串从位置 pos 开始、长度为 len 的子串。
参数详解与图解说明
pos:起始位置(索引),从 0 开始计数。
len:希望截取的字符个数,可省略,若省略则表示从 pos 一直取到末尾。
假设有一个字符串:
std::string str = "Hello, World!";其字符索引如下图所示:
N世界
一分钟搭建会展元宇宙
138
查看详情
H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12
现在我们通过几个例子来理解参数作用:
- str.substr(0, 5) → 从索引 0 开始取 5 个字符 → "Hello"
- str.substr(7, 5) → 从索引 7 开始取 5 个字符 → "World"
- str.substr(7) → 从索引 7 到末尾 → "World!"
- str.substr(5, 3) → 从索引 5 取 3 个字符 → ", W"
边界情况与注意事项
使用 substr 时需注意以下几点:
- 如果 pos 超过了字符串长度(即 pos >= str.length()),会抛出 std::out_of_range 异常。
- 如果 pos + len 超出字符串末尾,substr 会自动截取到末尾为止,不会报错。
- 如果 len 为 0,返回空字符串。
- 默认参数:pos 默认为 0,len 默认为 npos(表示“直到结尾”)。
例如:
str.substr(13); // pos=13 超出范围(长度为13,最大索引12)→ 抛异常 str.substr(10, 100); // 只能取到末尾,结果是 "d!"实用小技巧
常用于分割字符串或提取关键信息:
- 提取文件扩展名: std::string filename = "example.txt"; std::string ext = filename.substr(filename.rfind('.')); // 得到 ".txt"
- 去掉前缀: std::string url = "https://example.com"; std::string domain = url.substr(8); // 去掉 "https://"
基本上就这些。掌握好起始位置和长度两个参数,就能灵活使用 substr 截取任意子串。注意检查 pos 是否合法,避免运行时异常。
以上就是C++如何截取字符串子串_C++ string substr函数的参数图解的详细内容,更多请关注其它相关文章!
# 几个
# 呈贡营销推广品牌策划
# 佛山seo软件首选乐云seo
# 黄浦抖音营销推广方式
# 美团营销推广目的
# seo指令详解
# 成都视频推广获客网站
# 淄博全网seo报价表
# 什么项目适合网站推广呢
# 鞍山seo软件加盟公司
# 镇江91营销推广价格
# 就能
# c++
# 迭代
# 长度为
# 默认为
# 抛出
# 解决方法
# 尼克
# 重写
# 有什么
# ai
# 字符串截取
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量
微信网页版登录教程_微信网页版登录入口在哪
Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
J*a编写用户注册与登录功能_掌握字符串与验证逻辑
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解
一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰
在J*a中如何使用BigDecimal进行高精度计算_BigDecimal类应用指南
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
深入理解J*a编译器的兼容性选项:从-source到--release
迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法
邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策
菜鸟取件码是什么怎么查 最全查询渠道汇总
Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
Golang如何优雅处理error_Golang error处理最佳实践总结
Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】
漫蛙2网页版漫画入口 漫蛙漫画在线官方登录
汽水音乐在线版入口_汽水音乐网页播放手册
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
必由学官网快捷入口 必由学网页版在线学习平台
不同用户不同价格! 索尼开启账户个性化定价测试
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
快手赚钱渠道_快手收益来源
Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性
邮政快递包裹最新位置 邮政快递实时追踪入口
美团外卖商家服务中心入口 美团商家版官网入口
PHP高效扁平化嵌套数组:使用array_merge与数组解包操作符
Python字典中优雅地迭代剩余元素的方法
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
海棠账号登录入口_登录海棠账户同步阅读记录
钉钉视频会议画面卡顿如何解决 钉钉会议画面优化方法
韩剧圈正版入口页面_韩剧圈官网登录链接
怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法
Steam官网入口直达 Steam注册及登录步骤
大象笔记网页版入口 印象笔记网页版登录入口
提升Kafka消费者健壮性:会话超时处理与消息处理语义
魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】
QQ邮箱登录官网首页 腾讯QQ邮箱网页入口
Django通过AJAX异步上传图片并保存至模型的完整指南
Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略
PHP 枚举:根据字符串获取枚举案例的策略与实现
HTML元素状态管理:根据DIV内容动态启用/禁用按钮
Centos/Linux 系统下安装 composer 的完整步骤
12306几点到几点不能订票? | 官方最新系统维护时间全解析
拼多多赚钱渠道_拼多多收益来源


2025-11-28
浏览次数:次
返回列表