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

admin2015-12-22  19

问题 给定程序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[8 0];
    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’;

解析 函数的功能是删除字符串s中的所有空白字符。
    (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/WIi0FFFM
0

最新回复(0)