c++的substr函数
在C++中,substr 函数用于提取字符串的子串。它是 std::string 类的成员函数,用于从一个字符串中截取一部分子串。以下是关于 substr 函数的详细说明。
substr 函数的语法:
std::string substr (size_t pos = 0, size_t len = npos) const;
pos:子串的起始位置(默认为0)。
len:要提取的字符数(默认为 npos,即截取到字符串的末尾)。
substr 函数的用法示例:
#include <iostream>
#include <string>
int main() {
    // 创建一个字符串
    std::string originalString = "Hello, World!";
    // 使用 substr 截取子串
    std::string substring1 = originalString.substr(7);  // 从位置7开始截取到字符串末尾
    std::string substring2 = originalString.substr(0, 5);  // 从位置0开始截取5个字符
    // 输出结果
    std::cout << "Original String: " << originalString << std::endl;
    std::cout << "Substring 1: " << substring1 << std::endl;
    std::cout << "Substring 2: " << substring2 << std::endl;
    return 0;
}
substr 函数的注意事项:
1.字符串索引从0开始: 在C++中,字符串的索引是从0开始的。因此,substr(0, 5) 表示从第一个字符开始,截取5个字符。
2.位置和长度的限制:字符串长度超出定义值poslen 参数不能超过字符串的长度。如果指定的位置超出字符串的范围,substr 将抛出 std::out_of_range 异常。
3.npos 常量:nposstd::string 类的静态成员,表示一个特殊的无效位置或长度值,通常用于表示直到字符串末尾的截取。
#include <iostream>
#include <string>
int main() {
    std::string str = "abcdef";
    // 截取子串从位置2到字符串末尾
    std::string result = str.substr(2);
    std::cout << result << std::endl;  // 输出:cdef
    // 截取子串从位置1到位置3
    result = str.substr(1, 3);
    std::cout << result << std::endl;  // 输出:bcd
    // 错误的使用,抛出 std::out_of_range 异常
    try {
        result = str.substr(10);  // 超出字符串长度
    } catch (const std::out_of_range& e) {
        std::cerr << "Caught exception: " << e.what() << std::endl;
    }
    return 0;
}
substr 函数是一个非常有用的字符串操作函数,可用于在C++中轻松提取字符串的子串。确保在使用时考虑边界条件,以避免潜在的错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。