填空题
下列给定程序中,函数fun()的功能是:从字符串s中,删除所有大写字母'F'。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
void fun(char *s)
{
int i, j;
/*************found**************/
for(i=j=0; s[i]!= '0';i++)
if(s[i] != 'F')
/*************found**************/
s[j]=s[i];
s[j]='/0';
}
main ( )
{
char s[80];
printf("/nEnter a string: ");
gets(s);
printf("The original string: ");
puts(s);
fun(s);
printf("The string after deleted: ");
puts(s);
printf("/n/n ");
}
【正确答案】
1、(1)错误:for(i=j=0;s[i]!='0';i++) 正确:for(i=j=0;s[i]!'/0';i++)
【答案解析】(2) 错误:s[j]=s[i] 正确:s[j++]=s[i];
[解析] 错误1:本题考查是否掌握字符串的最后一个字符是结束标志符'/0'。错误2:在循环中,新字符串的下标也要递增,这样最终产生一个新的字符串。