新闻中心

C++ substring截取字符串_C++ string substr用法详解

2025-11-27
浏览次数:
返回列表
substr函数用于截取字符串,语法为substr(pos, len),从pos开始截取len个字符;若pos超界抛异常,len超限则截至末尾,常用于提取子串、文件名或扩展名。

c++ substring截取字符串_c++ string substr用法详解

C++ 中的 substr 函数是处理字符串截取最常用的方法之一,属于 std::string 类的成员函数。它能方便地从一个字符串中提取指定位置和长度的子串,使用简单且高效。

substr 基本语法

substr 函数有两种调用方式,但通常只使用一种带参数的形式:

size_t pos:起始位置(从 0 开始)
size_t len:要截取的字符个数(可省略,表示截取到末尾)

函数原型如下:

string substr(size_t pos = 0, size_t len = npos) const;

返回值是一个新的 string 对象,包含从位置 pos 开始、长度为 len 的子串。

常见用法示例

以下是一些典型的 substr 使用场景:

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多
  • 从第 2 个字符开始,截取 3 个字符:
    string str = "Hello";
    string sub = str.substr(1, 3); // 结果是 "ell"
  • 从某个位置截取到字符串末尾:
    string str = "Programming";
    string sub = str.substr(3); // 从索引 3 开始,结果是 "gramming"
  • 截取前 N 个字符:
    string str = "Cplusplus";
    string sub = str.substr(0, 4); // 结果是 "Cplu"

注意事项与边界情况

使用 substr 时需注意几个关键点,避免运行时错误或意外行为:

  • 如果 pos 等于字符串长度,返回空字符串。
    str.substr(str.size()); // 返回 ""
  • 如果 pos 大于字符串长度,会抛出 std::out_of_range 异常。
    str.substr(100); // 抛异常,除非开启异常处理
  • len 超过剩余字符数,自动截取到末尾,不会报错。
    str.substr(5, 100); // 只要 pos 合法,多长都行

实际应用场景

substr 在解析文本时非常实用,比如:

  • 提取文件扩展名:
    string filename = "document.pdf";
    string ext = filename.substr(filename.find('.') + 1); // 得到 "pdf"
  • 分割路径获取文件名:
    string path = "/home/user/test.txt";
    string file = path.substr(path.find_last_of('/') + 1); // 得到 "test.txt"

基本上就这些。掌握 substr 的用法后,字符串处理会变得直观又高效。不复杂但容易忽略细节,尤其是位置越界问题,建议使用前先判断合法性。

以上就是C++ substring截取字符串_C++ string substr用法详解的详细内容,更多请关注其它相关文章!


# pdf  # 银行零售营销推广方案  # 新疆seo效果好  # 谷歌竞价推广营销  # 莱芜网站优化平台  # 济宁推广数字营销代理品牌  # 本地seo玩法  # 相关文章  # 尤其是  # 几个  # 是一个  # 配置文件  # 解决方法  # 结果是  # 怎么做  # 重写  # 有什么  # c++  # 优化在线网站有哪些好处  # 中秋节营销推广主题  # seo私活接单  # 建设研究会门户网站 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: windows10怎么关闭系统提示音_windows10彻底静音设置方法  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】  Node.js中HTML按钮与J*aScript函数交互的正确姿势  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  高德地图沿途添加点失败如何解决 高德多点规划方法  css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容  Linux如何构建多环境配置管理_Linux多环境配置方案  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  steam官方网页快速访问 steam账号注册全流程  HTML元素状态管理:根据DIV内容动态启用/禁用按钮  学习通网页版快速入口 学习通官网网页版直接打开  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  微信语音通话掉线如何解决 微信语音通话稳定优化方法  痛风发作了怎么办? 快速止痛和后期饮食调理  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  C++指针和引用有什么区别_C++内存管理核心概念深度解析  yy漫画网页版官方入口_yy漫画官网登录页面链接  Node.js 中使用 node-cron 实现定时 API 数据抓取与处理  win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  Excel文件在线转换快速入口 Excel在线格式转换网站  Win11网速慢怎么解决 Win11网络设置优化解除限速  NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略  解决Python单元测试中Mock异常方法调用计数为零的问题  顺丰快递查单号物流信息 顺丰快递小程序查询入口  天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】  微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法  C++ map遍历方法大全_C++ map迭代器使用总结  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  Golang如何使用net/url解析URL_Golang URL解析与处理方法  Pandas DataFrame 多条件优先级排序与排名  Python类型检查:优化关联可选属性的Mypy推断策略  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  QQ网页版官方账号入口 QQ网页版网页版登录指南  如何使用Node.js csv 包按条件移除含空字段的CSV记录  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  C++如何生成随机数_C++ random库使用方法与范围设置  Python大型XML文件高效流式解析教程  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  基于动态规划的房屋花卉种植最小成本算法详解  在Typer应用中优雅地处理和重组任意命令行参数  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  双系统安装时,如何设置默认启动系统? msconfig命令了解一下!  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】  vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法 

搜索