模拟实现strstr()函数

来源:互联网 发布:mac lion系统下载 编辑:程序博客网 时间:2024/05/22 15:16
strstr (str1,str2)函数是用来判断字符串str2是否是字符串str1的子字符串的函数,如果是,则返回str2在str1中出现的首字符地址,否则返回null。
#include<stdio.h>#include<stdlib.h>#include<assert.h>char *my_strstr(const char* src, const char* dest)//在src里查找dest{assert(src);assert(dest);const char *str1 = src;const char *str2 = dest;const char *start = NULL;if (*str2 == '\0'){return str1;}while (*str1){start = str1;while (*str1 && *str2 && *str1 == *str2)//如果str1和str2有一个字符相等,则指针指向下一个字符继续判断  {str1++;str2++;}if(*str2 == '\0')//如果子字符串str2指向结束符(即子字符串str2中所有字符都与源字符串str1的相等,则返回子字符串第一次出现的位置。否则源字符串str1指向下一个位置继续判断  {return (char *)start;}str1 = start + 1;str2 = dest;}return NULL;}int main(){char str[]= "abcdef";char str1[] = "bcd";my_strstr(str, str1);printf("%s\n", my_strstr(str, str1));system("pause");return 0;}

1 0
原创粉丝点击