问题:写函数find(char *s1 , char *s2),函数find()查找串s中是否包含词word。约定串中的词由1个或1个以上空白符分隔。
代码:
#include <stdio.h>
int find(char *s1 , char *s2)
{
int flag=1,i=0,j=0;
for (;*s1!='\0';s1++)
{if(*s1==*s2)
{for(;*s2!='\0';s1++,s2++)
if (*s1!=*s2)
flag=0;}}
if (flag==1) return 1;
else return 0;
}
int main()
{
char s1[50],s2[50];
gets(s1);
gets(s2);
if (find(s1,s2)==1)
printf("Y");
else printf("N");
return 0;
}
想法是先检测到s1和s2第一个字符重复的位置,然后s1和s2同步对比下去,直到s2走完。flag做标志。最后测试的时候只会输出Y不会输出N,不清楚是什么原因。求指教!