c++的string的find函数
C++的string类是C++标准库中的一部分,它提供了许多字符串操作的函数。其中一个常用的函数是find()函数,它用于查字符串中某个子串的位置。下面将详细介绍这个函数以及它的用法。
find()函数的原型如下:
```
size_t find(const string& str, size_t pos = 0) const noexcept;
```
它接受两个参数,第一个参数是要查的子串,第二个参数是搜索的起始位置(默认为0)。函数返回一个size_t类型的值,表示子串在字符串中的索引位置。如果到子串,则返回第一次出现的位置索引;如果不到子串,则返回string::npos。
下面是一个示例代码,演示了find()函数的基本用法:
查匹配的字符串函数```cpp
#include <iostream>
#include <string>
int main() {
std::string str("Hello, world!");
std::size_t found = str.find("world");
if (found != std::string::npos) {
std::cout << "子串在位置" << found << "处到了。" << std::endl;
} else {
std::cout << "子串未到。" << std::endl;
}
return 0;
}
```
输出结果为:
```
子串在位置7处到了。
```
在上面的示例中,我们通过find()函数查了字符串"world"在变量str中第一次出现的位置。由于子串存在于字符串中,所以返回了7,正是子串的起始位置。
下面是一些关于find()函数的注意事项:
1. find()函数是区分大小写的,所以在查时要注意。
2.如果要查的子串是空字符串(""),则会返回起始位置。
3.如果要查的子串超过了字符串的长度,则会返回string::npos。
4. find()函数默认从字符串的开头开始查,如果指定了pos参数,则从指定位置开始查。
5.如果要查的子串在字符串中出现多次,find()函数会返回第一次出现的位置。
除了基本的用法,find()函数还可以结合其他函数进行更复杂的操作。例如,可以使用find()函数和substr()函数来截取字符串中的子串:
```cpp
std::size_t start = str.find("Hello");
std::size_t end = str.find("!");
if (start != std::string::npos && end != std::string::npos && end > start) {
std::string subStr = str.substr(start, end - start + 1);
std::cout << "截取到的子串为:" << subStr << std::endl;
} else {
std::cout << "未到合适的子串。" << std::endl;
}
```
上述代码中,我们使用find()函数到了"Hello"和"!"在字符串中的位置,然后使用substr()函数截取了这两个位置之间的子串。最后输出了截取到的子串。
总结:
C++的string类中的find()函数是一个非常有用的函数,用于在字符串中查子串并返回其位置。它的用法非常简单,只需要提供要查的子串作为参数即可。此外,通过结合其他函数的使用,可以实现更复杂的字符串操作。无论是在学习C++语言还是在实际开发中,掌握find()函数的用法都是非常重要的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论