下列给定的程序中 fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这
问题详情
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:
I am a student to take the examination
则应输出:I aM A studenT tO take thE examinatioN
请改正程序中的错误,使它能得出正确的结果。
注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <ctype.h>
include <stdio.h>
void fun(char *p)
{
int k=0;
for (; *p;p++)
if (k)
{
/*************found**************/
if (p=="")
{
k=0;
/*************found**************/
*p=toupper(*(p-1));
}
}
else
k=1;
}
main()
{char chrstr[64];
int d;
clrscr();
printf("nPlease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen(chrstr);
chrstr[d==" ";
chrstr[d+1]=0;
printf("nBofore changing:n %s",chrstr);
fun(chrstr);
printf("nAfter changing:n%s",chrstr);
}请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:(1)错误:if(p=='') 正确:if(*p=='')(2)错误:*p=toupper(*(p-1)); 正确:*(p-1)=toupper(*(p-1));
(1)错误:if(p=='') 正确:if(*p=='')(2)错误:*p=toupper(*(p-1)); 正确:*(p-1)=toupper(*(p-1)); 解析:本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,该题较多地应用了字符串处理函数。