问答题 给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun( char *s ) { int i,j; for(i=j=0; s[i]!='/0'; i++) if(s[i]!='c') /************found************/ /TAB s[j]=s[i]; /************found************/ s[i]='/0'; } main() { char s[80]; printf("Enter a string: "); gets(s); printf("The original string: "); puts(s); fun(s); printf("The string after deleted : "); puts(s);printf("/n/n"); }
【正确答案】第一处: 新字符串的位置值是由变量j来控制的,但程序中字符赋值后没有对j进行增量的语句,所以应改为:s[j++]=s[i];。 第二处: 对新字符串添加字符串结束符,由于程序中使用变量j对新字符串来控制的,所以应改为:s[j]=0;。
【答案解析】