#include"string.h"
#include"malloc.h"
typedef?struct
{
char?*ch;
int?length;
}HString;
int?substring(HString?&sub,HString?S,int?pos,int?len)
{
int?i;
if(pos<1?||?pos>S.length?||?len<0?||?len>S.length-pos+1)
return?0;
if(sub.ch)
{
sub.ch?=?NULL;
sub.length?=?0;
}
sub.ch=(char*)malloc(len*sizeof(char));
if(!sub.ch)?return?0;
for(i=0;i<len;i++)
sub.ch[i]=S.ch[pos-1+i];
sub.ch[i]='\0';
sub.length=len;
}
int?index(HString?S,HString?T,int?pos)
{
int?n=S.length,m=T.length,i=pos;
HString?sub;
sub.ch?=?NULL;
sub.length?=?0;
if(i>0)
{
while(i<=n-m+1)
{
substring(sub,S,i,m);
if(strcmp(sub.ch,T.ch)!=0)?i++;
else?return?i;
}
}
return?0;
}
void?main()
{
HString?S,T;int?i;
S.ch=(char*)malloc(10*sizeof(char));
T.ch=(char*)malloc(3*sizeof(char));
S.length=10;
T.length=3;
printf("輸入長度為10的串S:");
scanf("%s",S.ch);
printf("輸入長度為3的串T:");
scanf("%s",T.ch);
i=index(S,T,1);
printf("T在S中出現的位置為:%d\n",i);
}
幫妳修改了下, 說實話,妳的代碼寫得真不咋滴!