c++中字符串截取函数string::substr()使用
发布人:shili8
发布时间:2024-12-22 13:22
阅读次数:0
**C++ 中的 `std::string` 类及其 `substr()` 函数**
在 C++ 中,`std::string` 是一个非常重要的类,它提供了对字符串的基本操作,如创建、赋值、比较等。其中,`substr()` 函数是用于截取子串的关键函数。
**1. `substr()` 函数概述**
`substr()` 函数返回从指定位置开始的子串。它接受两个参数:起始位置和长度(可选)。如果不提供长度,则会截取到字符串末尾。
**2. `substr()` 函数使用示例**
cpp#include <iostream> #include <string> int main() { std::string str = "Hello, World!"; // 截取从第7 个字符开始的子串(含第7 个字符) std::string substr1 = str.substr(6); std::cout << "substr1: " << substr1 << std::endl; // 输出:World! // 截取从第0 个字符开始,长度为5 的子串 std::string substr2 = str.substr(0,5); std::cout << "substr2: " << substr2 << std::endl; // 输出:Hello return0; }
**3. `substr()` 函数的参数**
`substr()` 函数接受两个参数:
* `pos`:起始位置,从该位置开始截取子串。
* `len`:长度(可选):如果提供,则从起始位置开始截取指定长度的子串。如果不提供,则会截取到字符串末尾。
**4. `substr()` 函数返回值**
`substr()` 函数返回一个新的 `std::string` 对象,包含截取到的子串。
**5. `substr()` 函数的注意事项**
* 如果起始位置大于字符串长度,则会返回一个空字符串。
* 如果提供长度,但长度大于剩余字符数,则会截取到字符串末尾。
**6. `substr()` 函数在实际应用中的使用**
`substr()` 函数在实际应用中非常常见,例如:
* 截取 URL 中的参数* 提取 JSON 数据中的值* 分析日志文件中的信息下面是一个更复杂的示例:
cpp#include <iostream> #include <string> int main() { std::string str = " /> // 截取 URL 中的参数部分 size_t pos = str.find('?'); if (pos != std::string::npos) { std::string params = str.substr(pos +1); std::cout << "Params: " << params << std::endl; // 输出:param1=value1¶m2=value2 } return0; }
在这个示例中,我们使用 `substr()` 函数截取 URL 中的参数部分,并将其打印到控制台。
**7. 总结**
`std::string` 类中的 `substr()` 函数是用于截取子串的关键函数。它接受起始位置和长度(可选)两个参数,返回一个新的 `std::string` 对象,包含截取到的子串。在实际应用中,`substr()` 函数非常常见,例如截取 URL 中的参数、提取 JSON 数据中的值等。