用C语言写一段代码,判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
时间: 2024-05-06 12:16:50 浏览: 72
使用C语言提取子字符串及判断对称子字符串最大长度
5星 · 资源好评率100%
以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
char* find_substring(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j;
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str1[i + j] != str2[j])
break;
}
if (j == len2)
return &str1[i];
}
return NULL;
}
int main() {
char str1[] = "hello world";
char str2[] = "world";
char* result = find_substring(str1, str2);
if (result != NULL)
printf("Substring found at address %p\n", result);
else
printf("Substring not found\n");
return 0;
}
```
程序首先计算str1和str2的长度。然后,它遍历str1中的每个字符,并在每个位置上尝试匹配str2。如果在某个位置上找到了匹配,它就返回该位置的地址。如果整个str1都被搜索完了,也没有找到匹配,就返回NULL。
阅读全文