问答题 给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为: "ab",则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include int fun (char *s, char *t) { int n; char *p , *r; n = 0; while ( *s ) { p = s; r = t; while ( *r ) if ( *r == *p ) { /************found************/ r++; p++ } else break; /************found************/ if ( r == '/0' ) n++; s++; } return n; } main() { char s[100], t[100]; int m; printf("/nPlease enter string S:"); scanf("%s", s); printf("/nPlease enter substring t:"); scanf("%s", t); m = fun( s, t); printf("/nThe result is: m = %d/n", m); }
【正确答案】第一处:语句后缺少分号。 第二处:判断r的当前字符是否是字符串结束符,所以应改为:if(*r==0)。
【答案解析】