如何利用c++ string库函数获取子串

avatar
作者
筋斗云
阅读量:0

在C++中,你可以使用std::string库函数来获取子串。下面是一些常用的方法:

  1. substr(size_t pos, size_t count):从字符串中提取一个子串,从位置pos开始,提取count个字符。如果count大于剩余字符数,则提取到字符串末尾。

示例代码:

#include <iostream> #include <string>  int main() {     std::string str = "Hello, World!";     std::string sub = str.substr(0, 5); // 提取前5个字符     std::cout << "Substring: " << sub << std::endl; // 输出:Substring: Hello     return 0; } 
  1. find(const std::string& str):在字符串中查找子串str的位置。如果找到,返回子串第一次出现的位置;否则返回std::string::npos

示例代码:

#include <iostream> #include <string>  int main() {     std::string str = "Hello, World!";     std::string sub = "World";     size_t pos = str.find(sub); // 查找子串"World"的位置     if (pos != std::string::npos) {         std::cout << "Substring found at position: " << pos << std::endl; // 输出:Substring found at position: 7     } else {         std::cout << "Substring not found" << std::endl;     }     return 0; } 
  1. rbegin()rend():获取字符串的逆向迭代器,可以用于从字符串末尾开始向前查找子串。

示例代码:

#include <iostream> #include <string>  int main() {     std::string str = "Hello, World!";     std::string sub = "ld!";     auto start = str.rbegin();     auto end = str.rend();     while (start != end) {         if (*start == sub[0]) {             std::string sub_rev(start, end);             if (sub == sub_rev) {                 std::cout << "Reverse substring found: " << sub << std::endl; // 输出:Reverse substring found: lld!                 break;             }         }         --start;     }     return 0; } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!