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

admin2016-10-29  32

问题 给定程序MODI1.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);
}

选项

答案(1)for(i=0,t=0; p[i]; i++) (2)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://jikaoti.com/ti/4Wi0FFFM
0

最新回复(0)