C++中substr用法记录

在C++中,substr 是 std::string 类的一个成员函数,用于从一个字符串中提取子字符串。substr 函数的基本语法如下:

string substr(size_type pos = 0, size_type count = npos) const;

参数解释:

  1. pos

    • 类型:size_type(通常是 std::size_t
    • 含义:子字符串的起始位置。pos 是从 0 开始的索引。如果 pos 超过了字符串的长度,函数会抛出一个 std::out_of_range 异常。
  2. count

    • 类型:size_type
    • 含义:子字符串的长度。如果 count 超过了从 pos 开始的剩余字符数,子字符串将包含从 pos 开始的所有字符,直到字符串的末尾。

返回值:

  • 类型:std::string
  • 含义:返回一个包含了从 pos 开始的 count 个字符的子字符串。

使用示例:

  1. 提取从指定位置开始的子字符串

    #include <iostream>
    #include <string>
    
    int main() {
        std::string str = "Hello, World!";
        std::string sub = str.substr(7);  // 从索引 7 开始到末尾
        std::cout << sub << std::endl;    // 输出: World!
        return 0;
    }
    
  2. 提取指定长度的子字符串

    #include <iostream>
    #include <string>
    
    int main() {
        std::string str = "Hello, World!";
        std::string sub = str.substr(7, 5);  // 从索引 7 开始,提取 5 个字符
        std::cout << sub << std::endl;       // 输出: World
        return 0;
    }
    
  3. 提取从字符串末尾开始的子字符串

    #include <iostream>
    #include <string>
    
    int main() {
        std::string str = "Hello, World!";
        std::string sub = str.substr(str.size() - 6);  // 从倒数第 6 个字符开始到末尾
        std::cout << sub << std::endl;                // 输出: World!
        return 0;
    }
    
  4. 处理异常(如果起始位置超出字符串长度)

    #include <iostream>
    #include <string>
    
    int main() {
        std::string str = "Hello, World!";
        try {
            std::string sub = str.substr(20);  // 起始位置超出字符串长度
        } catch (const std::out_of_range& e) {
            std::cerr << "Out of range error: " << e.what() << std::endl;
        }
        return 0;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值