判断一个字符串中是否有子字符串(用指针实现)
#include <stdio.h>
#include<string.h>
int string_sub(char *s1,char *s2)
{
int flag=0,i,k=1;
for(;*s1!='\0';s1++)
{
if(*s1==*s2)
{
flag=1;
for(i=1;i<=(strlen(s2)+1);s1++,s2++,i++)
{
if(*s1!=*s2)
{
flag=0;
k=0;
}
}
}
if(!k) break;
}
return flag;
}
int main()
{
char string[80],substr[80];
gets(string);
gets(substr);
if(string_sub(string,substr)) printf("存在字符串");
else printf("不存在字符串");
return 0;
}
太久没写过代码了,调试了好久,还是不够严谨,后来加上了对k的使用保证了当flag=0时就可以跳出循环,否则继续执行到字符串结束flag值还是会发生变化。