改错题   下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。
    请修改程序中的错误,使它能得到正确结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdio.h>
    void proc(char*str)
    {
    int i, j;
    //****found****
    for(i=j=0; str[i]!='0'; i++)
    if(str[i]!='F')
    //****found****
    str[j]=str[i];
    str[j]='\0';
    }
    void main()
    {
    char str[80];
    printf('\nEnter a string: ');
    gets(str);
    printf('The original string: ');
    puts(str);
    proc(str);
    printf('The string after deleted: ');
    puts(str);
    printf('\n\n'); }
 
【正确答案】(1)错误:for(i=j=0; str[i]!='0'; i++) 正确:for(i=j=0; str[i]!='\0'; i++) (2)错误:str[j]=str[i]; 正确:str[j++]=str[i];
【答案解析】根据题目中的要求,从字符串str中删除所有大写字母'F',需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0; str[i]!='0'; i++)”应改为“for(i=j=0; str[i]!='\0'; i++)”;将每一个不是'F'的字符放入原来的字符串中,形成新的字符串,因此,“str[j]=str[i];”应改为“str[j++]=str[i];”。