| |
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int *strstri(char str1[],char str2[]);
main()
{
int *result;
char *string1=”My name is DJY.”,*string2=”name is”;
result=strstri(string1,string2);
printf(“%d %d”,result[0],result[1]);
return;
}
int *strstri(char str1[],char str2[])
{
int i=0,loc_s=0,loc_o=0,res[2],*res_p;
void toupper(char *tmp);
int compare(char s1[],char s2[],int cnt1,int cnt2);
toupper(str1);
toupper(str2);
while(str1[i]!=’\0′)
{
if(str1[i]==str2[0])
{
loc_s=i;
loc_o=compare(str1,str2,loc_s,1);
};
};
loc_s=-1;
res[0]=loc_s;res[1]=loc_o;
res_p=res;
return res_p;
void toupper(char *tmp)
{
int cnt=0;
while(tmp[cnt]!=’\0′)
{
if(tmp[cnt]>96&&tmp[cnt]<123)
tmp[cnt]-=32;
cnt++;
};
return tmp;
}
int compare(char s1[],char s2[],int cnt1,int cnt2)
{
while(s1[cnt1]!=’0′)
{
if(s1[cnt1]==s2[cnt2])
{
cnt1++;
cnt2++;
compare(s1,s2,cnt1,cnt2);
}else{
break;
};
};
return cnt1;
}
}
>> 本文固定链接: http://www.vcgood.com/archives/2238
>> 转载请注明: duanjingyu 2008年03月29日 于 C语言帝国 发表
C语言里不允许函数的含套声明!阁下的int *strstri(char str1[],char str2[]) 函数里出现了void toupper(char *tmp); 所以是错的1