C++中format的灵活使用场景

发布时间:2024-10-10 19:00:34 作者:小樊
来源:亿速云 阅读:79

在C++中,std::string类有一个非常有用的成员函数叫做find,它可以在字符串中查找子字符串的位置。如果找到了子字符串,find函数会返回子字符串第一次出现的位置的索引;如果没有找到子字符串,find函数会返回std::string::npos

以下是一个使用std::string::find函数的示例代码:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, world!";
    std::string sub = "world";

    size_t pos = str.find(sub);

    if (pos != std::string::npos) {
        std::cout << "Found '" << sub << "' at position " << pos << std::endl;
    } else {
        std::cout << "'" << sub << "' not found" << std::endl;
    }

    return 0;
}

在这个示例中,我们在字符串"Hello, world!"中查找子字符串"world",并使用std::string::find函数找到它的位置。然后,我们输出子字符串的位置。

需要注意的是,std::string::find函数是区分大小写的。如果你想进行不区分大小写的查找,可以在查找之前将字符串和子字符串都转换为小写(或大写):

#include <algorithm>
#include <cctype>

// ...

size_t pos = str.find(sub);

if (pos != std::string::npos) {
    std::cout << "Found '" << sub << "' at position " << pos << std::endl;
} else {
    std::cout << "'" << sub << "' not found" << std::endl;
}

// Convert both strings to lowercase to perform case-insensitive search
transform(str.begin(), str.end(), str.begin(), ::tolower);
transform(sub.begin(), sub.end(), sub.begin(), ::tolower);

pos = str.find(sub);

if (pos != std::string::npos) {
    std::cout << "Found '" << sub << "' at position " << pos << std::endl;
} else {
    std::cout << "'" << sub << "' not found" << std::endl;
}

在这个修改后的示例中,我们使用std::transform函数和::tolower函数将字符串和子字符串都转换为小写,然后再次使用std::string::find函数进行查找。这样就可以实现不区分大小写的查找了。

推荐阅读:
  1. C++的Boost Bimap怎么使用
  2. C++ Boost Array与Unordered怎么使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:C++标准库format函数入门

下一篇:探究C++ format的格式化选项

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》