给定程序MODll.C中函数fun的功能是:从s所指字符串中删除所有小写字母“c”。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void fun(c

admin2013-04-02  17

问题 给定程序MODll.C中函数fun的功能是:从s所指字符串中删除所有小写字母“c”。
    请改正程序中的错误,使它能计算出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
void fun(char *s)
{int i,j;
    for(i=j=0; s!=’\0’; i++)
      if(s!=’c’)
/************found************/
      s[j]=s;
/************found************/
     s=’\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");
}

选项

答案s[j++]=s[i]; s[j]=’\0’;

解析 (1)fun函数中for循环过程是把s中不是字母“c”的字符s复制到s[j],j指向重新排序后的数组下标。j的初值为0,且在循环过程中一直没有变,所以将“s[j]=s;”改为“s[j++]=s;”。
(2)操作字符串s结束后,要在j所指位置添加尾符标志,所以第二个标识下“s=’\0’;”应该改为“s[j]=’\0’;”。
转载请注明原文地址:https://jikaoti.com/ti/nnn0FFFM
0

最新回复(0)