给定程序MODll.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。 输入字符串时用’#’结束输入。 请改正程序中的错误,使它能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也

admin2013-04-02  64

问题 给定程序MODll.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
    输入字符串时用’#’结束输入。
    请改正程序中的错误,使它能输出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
fun (char *p)
{int i,t; char c[80];
/************found************/
  For (i=0,t=0; p; i++)
      if(!isspace(*(p+i))) c[t++]=p;
/************found************/
   c[t]="\0
   strcpy(p,c);
}
main()
{char c,s[80];
   int i=0;
   printf("Input a string:");
   c=getchar();
   while(c!=’#’)
   {s=c;i++;c=getchar();}
   s=’\0’;
   fun(s);
   puts(s);
}

选项

答案for (i=0,t=0; p[i]; i++) c[t]=’\0’;

解析 (1)第一个标识下“For (i=0,t=0; p; i++)”语句是for循环语句,而For不是C语言的关键字,所示“For (i=0,t=0; p; i++)”应改为“for (i=0,t=0; p; i++)”。
(2)第二个标识下的“c[t]="\0";”语句是在新生成的串后面加尾符标志,在C语言中规定使用单引号把一个字符括起来作为字符常量,所以“c[t]="\0";”应改为“c[t]=’\0’;”。
转载请注明原文地址:https://kaotiyun.com/show/RJJp777K
0

最新回复(0)