改错题   下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to takethe examination”,则应输出“I Am A Student To Take The Examination”。
    请改正程序中的错误,使程序能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include <ctype.h>
    #include <string.h>
    #include<stdio.h>
    /**********found**********/
    void upfst(char p)
    {int k=0;
    for(;*p;p++)
    if(k)
    {
    if(*p=='')
    k=0;
    }
    else
    {
    if(*p!='')
    {
    k=1;
    *p=toupper(*p);
    }
    }
    }
    main()
    {char chrstr[81];
    printf('\nPlease enter an English text line:');
    gets(chrstr);
    printf('\n\nBefore changing:\n%s',chrstr);
    upfst(chrstr);
    printf('\nAfter changing:\n%s\n',chrstr);
    }
 
【正确答案】void upfst( char *p)
【答案解析】主函数中fun函数的调用方式说明函数fun的参数应为指针类型。