c++的string的find用法
C++的字符串类(string)提供了一个名为`find()`的函数用于在字符串中查子字符串。它的准确用法如下:
```cpp
size_t find(const string& str, size_t pos = 0) const;
```
这个函数返回子字符串`str`在字符串中第一次出现的位置,如果不到则返回`string::npos`。参数`pos`表示在字符串中查的起始位置,默认为0,即从字符串的开头开始搜索。
具体用法如下:
```cpp
#include <iostream>
查匹配的字符串函数
#include <string>
int main() {
std::string str = "Hello, World!";
//查子字符串", "
size_t found = str.find(", ");
if (found != std::string::npos) {
std::cout << "到子字符串\", \",位置为:" << found << std::endl;
} else {
std::cout << "未到子字符串\", \"" << std::endl;
}
return 0;
}
```
输出结果为:
```
到子字符串", ",位置为:5
```
除此以外,使用`find()`函数还可以进行更多的操作,如查所有匹配项、查最后一次出现的位置等。下面是一些常用的拓展用法:
1.查所有匹配项:可以使用一个循环来重复调用`find()`函数,每次从上一次到的位置的后面开始查,直到不到为止。
```cpp
std::string str = "abcbcabd";
std::string subStr = "abc";
size_t found = str.find(subStr);
while (found != std::string::npos) {
std::cout << subStr << "出现在位置:" << found << std::endl;
found = str.find(subStr, found + 1);
}
```
输出结果为:
```
abc出现在位置:0
abc出现在位置:4
```
2.查最后一次出现的位置:可以先使用`rfind()`函数到最后一次出现的位置,然后再从该位置开始使用`find()`函数查其他匹配项。
```cpp
std::string str = "abcbcabd";
std::string subStr = "abc";
size_t found = str.rfind(subStr);
while (found != std::string::npos) {
std::cout << subStr << "最后一次出现的位置:" << found << std::endl;
found = str.find(subStr, found - 1);
}
```
输出结果为:
```
abc最后一次出现的位置:4
abc最后一次出现的位置:0
```
以上内容为c++的string的find用法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论