c语言中strstr函数
时间: 2023-12-19 12:03:53 浏览: 44
C语言中的strstr函数是一个字符串处理函数,其作用是在一个字符串中查找另一个字符串的位置。具体来说,它可以用来判断一个字符串是否包含另一个字符串,并返回第一次出现的位置。该函数的原型为char *strstr(const char *str1, const char *str2),其中str1为要查找的字符串,str2为要查找的子串。如果找到了子串,则返回子串在字符串中的首地址;否则返回NULL。该函数在头文件<string.h>中声明。
相关问题
c语言中strstr函数是什么意思
在C语言中,strstr函数是一个字符串处理函数,用于在一个字符串中查找另一个字符串的位置。它的原型为:
```c
char *strstr(const char *haystack, const char *needle);
```
其中,`haystack` 是要被查找的字符串,`needle` 是要查找的字符串。函数返回一个指向被查找字符串中第一次出现要查找字符串的位置的指针,如果没有找到,则返回 NULL。
例如,下面的代码演示了如何使用strstr函数在字符串中查找子字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[50] = "hello, world!";
char *ptr = strstr(str, "world");
if (ptr) {
printf("'%s' was found in '%s' at position %d\n", "world", str, ptr - str);
} else {
printf("'%s' was not found in '%s'\n", "world", str);
}
return 0;
}
```
输出结果为:
```
'world' was found in 'hello, world!' at position 7
```
c语言strstr的函数体
以下是C语言中strstr函数的函数体实现:
```c
char *strstr(const char *str1, const char *str2) {
const char *p1 = str1;
const char *p2 = str2;
const char *p1Adv = str1;
if (*str2 == '\0') {
return (char *)str1;
}
while (*p1Adv != '\0') {
p1 = p1Adv;
p2 = str2;
while (*p1 != '\0' && *p2 != '\0' && *p1 == *p2) {
p1++;
p2++;
}
if (*p2 == '\0') {
return (char *)p1Adv;
}
p1Adv++;
}
return NULL;
}
```
该函数的作用是在字符串str1中查找字符串str2的第一次出现,并返回指向该位置的指针。如果未找到,则返回NULL。