在C/C++库函数中,有字符串匹配函数strstr,其接口函数为:char *strstr(char *str1,char *str2);
现自定义一个字符串匹配函数,在字符串str1中找字符串str2第一次出现的位置 ,如果有匹配的,输出字串,否则返回NULL。
C代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *MyStrstr(const char *str1, const char *str2) {
if (str1 == NULL || str2 == NULL) {
printf("Error!");
exit(0);//正常运行程序并退出程序
}
char *src, *sub;
while (*str1 != '\0') {
src = str1;
sub = str2;
do {
if (*sub == '\0') {
return str2;//找到子串
}
} while (*src++ == *sub++);
str1++;
}
return NULL;
}
int main() {
char str1[50];
char str2[50];
printf("Please input str1:");
scanf("%s", str1);
printf("Please input str2:");
scanf("%s", str2);
char *pos=MyStrstr(str1, str2);
if (pos != NULL) {
printf("The substring is %s\n", pos);
}
else {
printf("No this substring\n");
}
getchar();
}
C运行结果:


本文深入探讨了如何在C语言中自定义一个类似strstr的字符串匹配函数,详细讲解了其工作原理与实现过程,通过代码示例展示了如何查找一个字符串在另一个字符串中首次出现的位置。
2916

被折叠的 条评论
为什么被折叠?



