这是一道等级考试中的程序改错题 code:
/*
给定程序MODI1.C中函数fun的功能是:求出在字符串中最后一
次出现的子字符串的地址,通过函数值返回,在主函数中输出从此
地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为:"abcdabfabcdx",t中的内容为:
"ab"时,输出结果应是:abcdx。
当字符串中的内容为:"abcdabfabcdx",t中的内容为:
"abd"时,则程序输出未找到信息:not be found!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include <conio.h>
#include <stdio.h>
#include <string.h>char * fun (char *s, char *t )
{
char *p , *r, *a;
/************found************/
a = NULL;
//a = Null;//这个是正确答案
while ( *s )
{ p = s; r = t;
while ( *r )
/************found************/
if (*r == *p) { r++; p++; }
//if ( r == p ) { r++; p++; }//这个是正确答案
else break;
if ( *r == '\0' ) a = s;
s++;
}
return a ;
}main()
{
char s[100], t[100], *p;
clrscr();
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" );
}
我的问题是计算机自动评卷如何实现?