C++ std::string 类的 substr 函数

在 C++ 中,std::string 类的 substr 函数用于从字符串中提取一个子字符串。这个函数非常实用,常用于字符串处理任务。以下是 substr 函数的基本用法和细节:

函数原型

substr 函数的原型如下:

cpp 复制代码
string substr(size_t pos = 0, size_t len = npos) const;

参数

  • pos: 起始位置索引(从 0 开始),指明从哪个位置开始提取子字符串。
  • len : 长度,指明需要提取的字符数。如果 len 超出了字符串的剩余长度,函数只会提取从 pos 开始到字符串末尾的部分。
  • npos 是 std::string 类的一个静态成员,表示最大可能的字符串长度。

返回值

  • 返回一个 std::string 对象,包含从 pos 开始的、长度为 len 的子字符串。

示例

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "Hello, World!";
    
    // 提取从位置 7 开始的 5 个字符
    string substr1 = str.substr(7, 5); // "World"

    // 从位置 2 开始到字符串末尾
    string substr2 = str.substr(2); // "llo, World!"

    cout << substr1 << endl;
    cout << substr2 << endl;

    return 0;
}

注意事项

  • 如果 pos 超出了字符串的长度,substr 会抛出 std::out_of_range 异常。
  • 如果 pos 有效但 pos + len 超出了字符串的长度,将只提取从 pos 开始到字符串末尾的部分。

substr 函数是处理 C++ 字符串的一个非常有用的工具,它简化了许多涉及字符串分割和提取的操作。

相关推荐
kimnoic3 小时前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python
别动我齐刘海4 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
程序员老陆4 小时前
C++ std::promise深度解析
c++·程序设计
必须得开心呀4 小时前
python编写带界面的软件,需要安装哪些插件
开发语言·python
青少儿编程课堂5 小时前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
沫璃染墨6 小时前
《Qt从零入门系列(十三):QSS样式表详解——从选择器与层叠规则到控件美化实战》
开发语言·css·c++·qt·ui·qt6.3·qss
达子6667 小时前
RUST 图解 第 3 章:通用编程概念(Common Programming Concepts)
开发语言·算法·rust
道尔柯南7 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
楠楠子呀8 小时前
英语、西语、阿语客户各开一个口:多语言获客的分流方案
开发语言·javascript·ecmascript·跨境电商·whatsapp·营销工具
tachibana28 小时前
使用for range 的时候,它的地址会发生变化吗?
开发语言·后端·golang·go·语法