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