strstr的实现

来源:互联网 发布:定制小礼品 知乎 编辑:程序博客网 时间:2024/05/05 09:06

此题相对简单,跟字符串匹配相差不多,改了个返回值类型而已。

#include<stdio.h>#include<stdlib.h>char *search(char *src,int slen,char *patn,int plen){int i = 0,j = 0;while(i<slen && j<plen){if(src[i] == patn[j]){i++;j++;}else{i = i-j+1;j=0;}}if(j==plen)return src + i - plen;elsereturn NULL;}int main(int argc,char *argv[]){char a[128] = "abcdefdaawe";char b[128] = "def";printf("%s\n",a);printf("%s\n",search(a,strlen(a),b,strlen(b)));printf("%s\n",strstr(a,b));return 0;}


#include<stdio.h>int substr(const char *str,const char *p){int i = 0,j = 0;while(str[i] != '\0'&& p[j] != '\0'){if(str[i] == p[j]){i++;j++;}else{i = i - j + 1;j = 0;}}if(p[j] == '\0')return i - j;elsereturn -1;}int main(int argc,char *argv[]){char str[128] = "abcdefdaawe";char p[128] = "def";printf("%d\n",substr(str,p));return 0;}