下列给定程序中,函数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)错误: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:在循环中,新字符串的下标也要递增,这样最终产生一个新的字符串。