实现字符串函数strstr(a,b);即b与a 匹配,如果匹配成功,输出匹配后的所有字符,如果匹配失败,输出提示。
#include<stdio.h>
#include<string.h>
int stringmatch(char *scrstring, char *zistring) //匹配字符串,最笨的匹配方法,其实可以用KMP匹配的,提高一点效率、
{
int scelen=strlen(scrstring);
int zilen=strlen(zistring);
int i=0,j=0;
while(i<scelen && j< zilen)
{
if(scrstring[i]==zistring[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
if(j==zilen)
return i=i-j;
}
return 0;
}
// 模仿strstr()
void imatatestrstr(char *scrstring, char *zistring)
{
int k=stringmatch(scrstring,zistring); //找到匹配的位置,然后即可输出
int scelen=strlen(scrstring);
if(k==0)
puts("字符串不匹配");
else
{
while(k<scelen)
{
printf("%c",scrstring[k]);
k++;
}
}
}
int main(void)
{
char c[64];
char a[32];
puts("输入源字符串: ");
gets(c);
puts("输入匹配字符串:");
gets(a);
puts("匹配结果:");
imatatestrstr(c,a);
return 0;
}