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.位置和长度的限制:字符串长度超出定义值pos 和 len 参数不能超过字符串的长度。如果指定的位置超出字符串的范围,substr 将抛出 std::out_of_range 异常。
3.npos 常量:npos 是 std::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小时内删除。
发表评论