给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为“abcdabfabcdx”、t中的内容为“ab”时,输出结果应是abcdx。当字符串中的内容为“abcdabfabcdx”、t中的内容为“abd”时,则程序输出未找到信息not be found!。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
char *fun(char *s,char *t)
{
char *p,*r,*a;
a=Null;
while(*s)
{
p=s;r=t;
while(*r)
if(*r==*p)
{r++;p++;}
elsebreak;
if(*r=='\0')a=s;
s++;
}
returna ;
}
main()
{
char s[100],t[100],*p;
printf("\nPlease enter string S :");
scanf("%s",s);
printf("\nPlease enter substring t :");
scanf("%s",t);
p=fun(s,t);
if(p) printf("\nThe result is :%s\n",p);
else printf("\nNot found !\n");
}
解释下FUN函数的功能是如何实现的,"字符串中最后一次出现的t所指子字符串的地址".这句话怎么实现,总感觉BREAK用的不对,谁能解释下,谢谢
能具体解释下FUN函数吗,我不太明白,我想知道每步起什么作用
|