大家帮我改下这个程序啊

来源:百度知道 编辑:UC知道 时间:2024/06/21 06:39:01
#include<stdio.h>
int search(char *str1,char *str2)
{
int m,n,i=0,j=0;
m=strlen(str1);
n=strlen(str2);
for(i=0;i<m-n;i++)
{
for(j=0;j<n;j++)
{
if(str1[i+j]!=str2[j])
break;
if(j==n-1)
return i+1;
else
return 0;
}
}
}
void main()
{
int s,i;
char str1[30],str2[30];
printf("shu ru zi fu chuan\n");
gets(str1);
printf("shu ru yao cha zhao\n");
gets(str2);
s=search(str1,str2);
if(s==0)
printf("bu cun zai gai zi fu chuan\n");
else
printf("chun zai gai zi fu chuan zai %d wei zhi\n",s+1);
}
我想查找字串得位置,但是比如ababacaf,查找ab都不得行
非常遗憾的是没有解决根本的问题,e.g1:ababab中找ab。

#include<stdio.h>
int search(char *str1,char *str2)
{
int m,n,i=0,j=0;
m=strlen(str1);
n=strlen(str2);
for(i=0;i<m-n;i++)
{
for(j=0;j<n;j++)
{
if(str1[i+j]!=str2[j])
break;

}
if(j==n)
return i+1;
}
return 0;
}
void main()
{
int s,i;
char str1[30],str2[30];
printf("shu ru zi fu chuan\n");
gets(str1);
printf("shu ru yao cha zhao\n");
gets(str2);
s=search(str1,str2);
if(s==0)
printf("bu cun zai gai zi fu chuan\n");
else
printf("chun zai gai zi fu chuan zai %d wei zhi\n",s+1);
getch();
}

你判断有没找到的时候判断错误了,返回的时候把循环又打断了```
自己看看吧,我只改了判断j==n,和判断语句的位置。。。。