M079

02-程序修改题 软件154 范金瑞 664浏览

所属年份:2010.9;2011.3;2011.9

下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里”单词”是指由空格隔开的字符串)。例如,若输入”I am a student to take the examination”,则应输出”I Am A Student To Take The Examination”。

请改正程序中的错误,使程序能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include  <stdlib.h>
#include  <string.h>
#include  <conio.h>
#include  <ctype.h>
#include  <stdio.h>
#include  <string.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);
            }
        }
}
void main()
{
    char  chrstr[81];
    system("CLS");
    printf("\nPlease enter an English text line: ");
    gets(chrstr);
    printf("\nBofore changing:\n  %s",chrstr);
    upfst(chrstr);
    printf("\nAfter changing:\n  %s\n",chrstr);
}

【参考答案】

void upfst( char *p)

【解题思路】
主函数中fun函数的调用方式说明函数fun的参数应为指针类型。