用C语言变成:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
时间: 2024-05-15 07:12:54 浏览: 102
可以这样实现一个 strstr 函数:
```c
#include <stdio.h>
#include <string.h>
char *my_strstr(const char *str1, const char *str2) {
int i, j;
int len1 = strlen(str1);
int len2 = strlen(str2);
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str1[i + j] != str2[j]) {
break;
}
}
if (j == len2) {
return (char *) (str1 + i);
}
}
return NULL;
}
int main() {
char str1[] = "hello world";
char str2[] = "world";
char *p = my_strstr(str1, str2);
if (p) {
printf("%s\n", p);
} else {
printf("not found\n");
}
return 0;
}
```
这个函数的实现方法是,遍历 str1 中的每一个字符,如果当前字符和 str2 的第一个字符相同,则从当前位置向后比较 str2 中的剩余字符,如果全部相同,则说明 str2 是 str1 的子串,返回 str2 在 str1 中首次出现的地址。如果遍历完 str1 都没有找到 str2,则返回 NULL。
阅读全文