个位前辈帮我看个字符串
原本要求是要求输入字符串A,还有字符串B,判断B是否是A的子字符串,如果是的话就把B显示出来,如果不是的话就重新输入我自己写了这个代码,但是只有把第一个字母包含进去的子字符串是对的其他好多不对,个位前辈帮我看下是哪里出问题了,代码里那些11111\22222是为了测试方便而写的,前辈勿笑.
#include<stdio.h>
#include<stdlib.h>
int fine(char[],char[],int);
void main()
{
char a[40];
char b[40];
int conut1;
int repeat;
printf("请输入一段字符a:");
gets(a);
printf("输入的a是:%s\n",a);
to:printf("请输入一段字符b:");
gets(b);
for(conut1=0; b[conut1]; conut1++);//奶奶的分号
printf("b的长度是%d个字符\n",conut1);
repeat=fine(a,b,conut1);//是否满足重新输入条件
if(!repeat)
goto to;
}
int fine(char a[40],char b[40], int conut1)
{
int conut2;
int conut3;
int conut4;
int flag;
for(conut2=0; a[conut2]==b[0]; conut2++);//找第一个相同的字符
if(conut2)
{
for(conut4=0,conut3=0; conut3<=conut1; conut3++,conut4++)
{
if(a[conut2+conut3]==b[conut4])//一样的话就继续比下一个字符
continue;
else
{
flag=0;
break;
}
}
printf("%s是%s的子字符串\n",b,a);
flag=1;
}
else if(!conut2)
{
printf("%s不是%s的子字符串22222222\n",b,a);
flag=0;
}
return flag;
}
[ 本帖最后由 代号阿杰 于 2009-12-2 07:18 编辑 ]