改错题
下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“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);
}