c++中string怎么查找子串_string字符串查找方法

find()函数用于查找子串,若找到返回起始索引,否则返回string::npos;支持从指定位置开始查找,可查找子串或字符。

c++中string怎么查找子串_string字符串查找方法

在C++中,string 类提供了多种查找子串的方法,最常用的是 find() 函数。通过它可以在一个字符串中查找另一个子串或字符的位置,如果找到返回起始索引,否则返回 string::npos

find() 基本用法

find() 是 string 类中最核心的查找函数,支持查找子串、单个字符、C风格字符串等。

常用形式:str.find(substr):从头开始查找子串 substr 的第一次出现位置 str.find(substr, pos):从位置 pos 开始向后查找 str.find(c):查找字符 c

示例代码:

string str = “Hello world, welcome to C++”;
string target = “welcome”;
size_t pos = str.find(target);
if (pos != string::npos) {
    cout } else {
    cout }

其他查找函数

除了 find(),C++ string 还提供了一些更具体的查找方法,适用于不同场景。

立即学习“C++免费学习笔记(深入)”;

rfind()

从右往左查找子串的最后一次出现位置,即逆向查找。

string str = “ababcabc”;
size_t pos = str.rfind(“abc”); // 返回 5find_first_of()

查找参数中任意一个字符首次出现的位置。

string str = “Hello World!”;
size_t pos = str.find_first_of(“aeiou”); // 找到第一个元音字母 ‘e’,返回 1find_last_of()

查找参数中任意一个字符最后一次出现的位置。

string str = “Hello World!”;
size_t pos = str.find_last_of(“o”); // 返回 7find_first_not_of()

查找第一个不在指定字符集中的字符。

string str = ” abc123″;
size_t pos = str.find_first_not_of(” “); // 跳过空格,返回 3(’a’的位置)find_last_not_of()

查找最后一个不在指定字符集中的字符。

string str = “abc123!!!”;
size_t pos = str.find_last_not_of(“!”); // 返回 6(’3’的位置)

查找结果判断

所有查找函数都返回 size_t 类型的位置值。如果未找到,返回常量 string::npos(通常为 -1 转换为无符号数)。

正确判断方式:if (pos != string::npos) {
    // 找到了
} else {
    // 没找到
}

注意不要直接和 -1 比较,因为 size_t 是无符号类型,容易出错。

基本上就这些常见用法。掌握 find 及其变体,就能高效处理大多数字符串查找需求。

以上就是c++++中string怎么查找子串_string字符串查找方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1477899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 02:26:29
下一篇 2025年12月19日 02:26:36

相关推荐

发表回复

登录后才能评论
关注微信