C++中的std::string
類提供了幾種查找功能,包括find()
, rfind()
, find_first_of()
, find_last_of()
等。下面是這些函數的簡單介紹和示例:
size_t find(const std::string& str, size_t pos = 0) const noexcept;
在當前字符串中從位置pos
開始查找子字符串str
第一次出現的位置。如果找不到則返回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 at position: "<< pos<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
return 0;
}
size_t rfind(const std::string& str, size_t pos = npos) const noexcept;
在當前字符串中從位置pos
開始查找子字符串str
最后一次出現的位置。如果找不到則返回std::string::npos
。
#include<iostream>
#include<string>
int main() {
std::string s("hello world world");
std::string sub("world");
size_t pos = s.rfind(sub);
if (pos != std::string::npos) {
std::cout << "Found at position: "<< pos<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
return 0;
}
size_t find_first_of(const std::string& str, size_t pos = 0) const noexcept;
在當前字符串中從位置pos
開始查找str
中任意字符第一次出現的位置。如果找不到則返回std::string::npos
。
#include<iostream>
#include<string>
int main() {
std::string s("hello world");
std::string chars("wro");
size_t pos = s.find_first_of(chars);
if (pos != std::string::npos) {
std::cout << "Found at position: "<< pos<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
return 0;
}
size_t find_last_of(const std::string& str, size_t pos = npos) const noexcept;
在當前字符串中從位置pos
開始查找str
中任意字符最后一次出現的位置。如果找不到則返回std::string::npos
。
#include<iostream>
#include<string>
int main() {
std::string s("hello world");
std::string chars("wro");
size_t pos = s.find_last_of(chars);
if (pos != std::string::npos) {
std::cout << "Found at position: "<< pos<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
return 0;
}
這些函數可以根據需要進行組合使用,以實現更復雜的查找功能。注意,當使用std::string::npos
作為參數時,表示從字符串的末尾開始查找。