strchr 和strstr差别
时间: 2023-09-25 10:15:43 浏览: 64
strchr和strstr都是C语言中的字符串处理函数,它们的主要区别在于:
1. 函数原型不同:
```c
char *strchr(const char *str, int c);
char *strstr(const char *str1, const char *str2);
```
2. 功能不同:
- strchr函数用于查找一个字符在字符串中第一次出现的位置,并返回该位置的指针。如果未找到该字符,则返回NULL;
- strstr函数用于查找一个字符串在另一个字符串中第一次出现的位置,并返回该位置的指针。如果未找到该字符串,则返回NULL。
3. 参数不同:
- strchr函数的第二个参数是一个字符,表示要查找的字符;
- strstr函数的第二个参数是一个字符串,表示要查找的字符串。
综上所述,strchr和strstr的差别在于它们的功能不同,参数不同,适用范围也不同。需要注意的是,这两个函数都是在找到第一个匹配项之后停止搜索。
相关问题
C语言 strchr和strstr
strchr和strstr都是C语言中的字符串操作函数。
strchr函数用于在一个字符串中查找某个字符第一次出现的位置,其函数原型为:
```c
char *strchr(const char *str, int c);
```
其中,str为要查找的字符串,c为要查找的字符。如果在str中找到c,则返回c在str中第一次出现的地址;如果没有找到,则返回NULL。
例如,下面的代码用strchr函数查找字符串中是否含有某个字符:
```c
char str[] = "hello world";
char *ptr = strchr(str, 'w');
if(ptr != NULL) {
printf("找到了w在字符串中第一次出现的位置:%s\n", ptr);
} else {
printf("字符串中没有找到w\n");
}
```
strstr函数用于在一个字符串中查找另一个字符串第一次出现的位置,其函数原型为:
```c
char *strstr(const char *haystack, const char *needle);
```
其中,haystack为要查找的字符串,needle为要查找的子字符串。如果在haystack中找到了needle,则返回needle在haystack中第一次出现的地址;如果没有找到,则返回NULL。
例如,下面的代码用strstr函数查找字符串中是否含有另一个字符串:
```c
char str[] = "hello world";
char *ptr = strstr(str, "world");
if(ptr != NULL) {
printf("找到了world在字符串中第一次出现的位置:%s\n", ptr);
} else {
printf("字符串中没有找到world\n");
}
```
strchr与strstr的区别
strchr和strstr都是用来查找字符串中是否包含某个特定字符或子字符串的函数,但它们的用法有所不同。
strchr函数用于查找字符串中是否包含某个特定的字符。它的原型为:
char *strchr(const char *str, int c);
其中str为要查找的字符串,c为要查找的字符。如果找到了该字符,则返回该字符在字符串中第一次出现的位置的指针;如果没找到,则返回NULL。
strstr函数用于查找字符串中是否包含某个特定的子字符串。它的原型为:
char *strstr(const char *str1, const char *str2);
其中str1为要查找的字符串,str2为要查找的子字符串。如果找到了该子字符串,则返回该子字符串在字符串中第一次出现的位置的指针;如果没找到,则返回NULL。
总之,strchr用于查找单个字符,而strstr用于查找子字符串。