改错题   下列给定程序中,函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同,若相同,什么也不做;若不同,则将其插在串的最后。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include <stdio.h>
    #include <string.h>
    /********found********/
    void fun(char str,char ch)
    {while(*str &&*str!=ch)str++;
    /********found********/
    if(*str==ch)
    {str[0]=ch;
    /********found********/
    str[1]='0';
    }
    }
    main()
    {char s[81],c;
    printf('\nPlease enter a string:\,n');gets(s);
    printf('\n Please enter the character to search:');
    c=getchar();
    fun(s,c);
    printf('\nThe result is %s\n',s);
    }
 
【正确答案】void fun(char *str, char ch) if (*str != ch) str[1] =0;
【答案解析】(1)第1个形参应该是字符串类型,所以应改为void fun(char*str, char ch)。 (2)应该是判断不相等,所以应改为if(*str!=ch)。 (3)赋值字符串结束符错误,所以应改为str[1]=0;。