c++

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

小樊
81
2024-09-24 22:26:05
栏目: 编程语言

在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;
}

0
看了该问题的人还看了