下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此本行(这里的”单词”是反指由空格隔开的字符串).例如,若输入I am a student to take the examination,则应输出Am A Student To Take The Examination.
请改正程序中的错误,使程序能得出正确的结果.
注意;不要动main函数,不得增行或删行,也不得更改程序的结构
#include
#include
#include
/********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("nnBefore changing:n %s", chrstr);
upfst(chrstr);
printf("nAfter changing:n %sn", chrstr);
}
参考答案:
第1处void upfst(char p)改为void upfst(char *p)
