您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
string
库是C++标准库中的一个重要组成部分,它提供了许多用于操作字符串的函数。其中,查找算法是string
库中的一个关键功能,主要用于在字符串中查找子字符串的位置。以下是string
库中查找算法的详解:
find()函数:
find()
函数是最常用的查找方法之一,用于在字符串中查找子字符串的第一个匹配项。std::string::find(const std::string& str, size_t pos = 0)
,其中str
是要查找的子字符串,pos
是开始查找的位置(默认为0)。std::string::npos
。#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::string sub = "World";
size_t pos = s.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;
}
rfind()函数:
rfind()
函数用于在字符串中查找子字符串的最后一个匹配项。std::string::rfind(const std::string& str, size_t pos = std::string::npos)
,其中str
是要查找的子字符串,pos
是开始查找的位置(默认为字符串末尾)。std::string::npos
。#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::string sub = "World";
size_t pos = s.rfind(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;
}
find_first_of()函数:
find_first_of()
函数用于在字符串中查找任何一个指定字符集中的字符的第一个匹配项。std::string::find_first_of(const std::string& str, size_t pos = 0)
,其中str
是字符集,pos
是开始查找的位置(默认为0)。std::string::npos
。#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::string chars = "abc";
size_t pos = s.find_first_of(chars);
if (pos != std::string::npos) {
std::cout << "Found first character from set at position " << pos << std::endl;
} else {
std::cout << "No character from set found" << std::endl;
}
return 0;
}
find_last_of()函数:
find_last_of()
函数用于在字符串中查找任何一个指定字符集中的字符的最后一个匹配项。std::string::find_last_of(const std::string& str, size_t pos = std::string::npos)
,其中str
是字符集,pos
是开始查找的位置(默认为字符串末尾)。std::string::npos
。#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::string chars = "abc";
size_t pos = s.find_last_of(chars);
if (pos != std::string::npos) {
std::cout << "Found last character from set at position " << pos << std::endl;
} else {
std::cout << "No character from set found" << std::endl;
}
return 0;
}
这些查找算法在处理字符串时非常有用,可以帮助你快速定位子字符串或特定字符在字符串中的位置。需要注意的是,这些算法的时间复杂度可能因实现而异,但通常都是线性的,即O(n),其中n是字符串的长度。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。