#include <STDIO.H>
#include <STDLIB.H>
#include <STRING.H>
#define N 1000
/**************************************************************
问题描述:
判断一个字符串(dst)是否是另一个字符串(src)的子串,输出子串在
母串中的第一次出现的起始位置,匹配的时候不区分大小,不能使用库函数
(使用库函数按0分计算);
输入:字符串dst,字符串src。
输出:字符串src中第几个开始相同,若没有相同的则返回0.
***************************************************************/
int main()
{
char src[N],dst[N];
int n1=0,n2=0,i,j;
printf("please input the src string:\n");
gets(src);
printf("please input the dst string:\n");
gets(dst);
//计算src的长度n1.
for(i=0;i<N;i++)
{
if(src[i]=='\0')
break;
}
n1=i;
//printf("%d \n",n1);
//计算dst的长度n2.
for(i=0;i<N;i++)
{
if(dst[i]=='\0')
break;
}
n2=i;
//printf("%d \n",n2);
//若dst的长度n2>src的长度n1,显然不可能有相同的.
if(n2>n1)
return printf("%d \n",0);
//沿着src查找是否有与dst相同的字符.
for (i=0;i<=n1-n2;i++)
{
if (src[i]==dst[0])
{
for(j=0;j<n2;j++)
{
if(src[i+j]!=dst[j])
break;
}
return printf("%d \n",i+1);
}
}
return printf("%d \n",0);
}
huwei题目2......2014.5.2
最新推荐文章于 2024-01-24 09:43:36 发布