C++中函数find()和函数strstr()的区别
时间: 2024-05-25 19:16:47 浏览: 80
函数find()和函数strstr()都用于在字符串中查找子字符串,但它们有以下区别:
1. 函数定义不同:find()是C++ STL中的函数,而strstr()是C标准库中的函数。
2. 函数参数不同:find()可以接受多种类型的参数,包括迭代器、指针、范围等;而strstr()只接受两个指针参数,分别是要查找的字符串和要查找的子字符串。
3. 函数返回值不同:find()返回一个迭代器或指针,指向找到的子字符串的第一个字符;而strstr()返回一个指针,指向找到的子字符串的第一个字符。
4. 函数功能不同:find()可以用于任何可以迭代的容器,包括vector、string、array等;而strstr()只能用于C风格的字符串。
综上所述,find()具有更广泛的适用范围,而strstr()只适用于C字符串的查找。
相关问题
c++中没有find函数
,但可以使用字符串库中的strstr函数来查找某个子字符串在另一个字符串中的位置。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World!";
char *substr = "World";
char *pos = strstr(str, substr);
if (pos != NULL) {
printf("'%s' is found at position %ld\n", substr, pos - str);
} else {
printf("'%s' is not found\n", substr);
}
return 0;
}
```
输出:
```
'World' is found at position 6
```
c++中find函数讲解
在 C 语言中,没有内置的 find() 函数,但可以通过编写自定义函数来实现相同的功能。
一种实现方式是利用 strstr() 函数,该函数用于在字符串中查找子字符串,并返回第一次出现的位置。因此,可以编写一个函数来利用该函数查找一个字符或字符串在另一个字符串中的位置。
以下是一个示例函数来查找一个字符在字符串中的位置:
```
#include <stdio.h>
#include <string.h>
int find_char(char *str, char ch) {
char *p = strchr(str, ch);
if (p != NULL) {
return p - str;
}
return -1;
}
int main(void) {
char str[50] = "Hello, world!";
int pos = find_char(str, 'o');
if (pos != -1) {
printf("Found at position %d\n", pos);
} else {
printf("Not found\n");
}
return 0;
}
```
输出结果为:Found at position 4
同样,可以编写一个函数来查找一个字符串在另一个字符串中的位置:
```
#include <stdio.h>
#include <string.h>
int find_string(char *str, char *substr) {
char *p = strstr(str, substr);
if (p != NULL) {
return p - str;
}
return -1;
}
int main(void) {
char str[50] = "Hello, world!";
int pos = find_string(str, "world");
if (pos != -1) {
printf("Found at position %d\n", pos);
} else {
printf("Not found\n");
}
return 0;
}
```
输出结果为:Found at position 7
这些示例函数可根据需要进行修改,以实现更特定的查找功能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)