strstr函数复现
时间: 2023-11-08 20:02:11 浏览: 92
C++ VC strstr函数的仿真
要复现C语言中的strstr函数,可以使用以下代码:
```c
#include <stdio.h>
#include <string.h>
char *my_strstr(const char *haystack, const char *needle) {
int i, j;
if (!*needle)
return (char *) haystack;
for (i = 0; haystack[i] != '\0'; i++) {
if (haystack[i] == needle[0]) {
for (j = 1; needle[j] != '\0'; j++) {
if (haystack[i + j] != needle[j])
break;
}
if (needle[j] == '\0')
return (char *) &haystack[i];
}
}
return NULL;
}
int main() {
char haystack[] = "Hello, world!";
char needle[] = "world";
char *result = my_strstr(haystack, needle);
if (result != NULL)
printf("Needle found at position: %ld\n", result - haystack);
else
printf("Needle not found.\n");
return 0;
}
```
上述代码使用双重循环遍历字符串,逐个比较字符,找到匹配的子串后返回其指针。如果未找到匹配的子串,则返回NULL。
阅读全文