问答题
给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用"#"结束输入。
请改正程序中的错误,使它能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<string.h>
#include<stdio.h>
#include<ctype.h>
fun(char *p)
{int i, t; char c[80];
/**********found**********/
For(i=0, t=0; p[i]; i++)
if(!isspace(*(p+i))) c[t++]=p[i];
/**********found**********/
c[t]="/0";
strcpy(p, c);
}
main()
{char c, s[80];
int i=0;
printf("Input a string:");
c=getchar();
while(c!="#")
{s[i]=c; i++; c=getchar();}
s[i]="/0";
fun(s);
puts(s);
}
【正确答案】
【答案解析】(1)for(i=0, t=0; p[i]; i++)
(2)c[t]="/0";
答案考生文件夹
[解析] 函数的功能是删除字符串s中的所有空白字符。
(1)第一个标识下“For(i=0, t=0; p[i]; i++)”语句是for循环语句,而For不是C语言的关键字,所示“For(i=0, t=0; p[i]; i++)”应改为“for(i=0, t=0; p[i]; i++)”。
(2)第二个标识下的“c[t]="/0"; ”语句是在新生成的串后面加尾符标志,在C语言中规定使用单引号把一个字符括起来作为字符常量,所以“c[t]="/0"; ”应改为“c[t]="/0"; ”。
[考点] 字符数组和字符串。