作业帮 > 综合 > 作业

一个c语言的问题:首字母变大写

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/28 06:44:09
一个c语言的问题:首字母变大写
输入一个英文句子,将每个单词的第一个字母改成大写字母.如
input:i like it
output:I Like It
我的代码
#include
void main()
{\x09char str[100],*p;
\x09while(scanf("%s",str)!=EOF)
\x09{\x09p=str;
\x09\x09*p=*p-32;
\x09\x09for(p=str+1;*p!='\0';p++)
\x09\x09{\x09
\x09\x09\x09if(*p=' ')\x09
\x09\x09\x09{\x09*(p+1)=*(p+1)-32;
\x09\x09\x09}
\x09\x09}
printf("%s\n",str);
\x09}
}
#include
#include
void main()
{
char str[100],*p;
while(gets(str)!=EOF)
{p=str;
*p=toupper(*p);
for(p=str+1;*p!='\0';p++)
{
if(*(p-1)==' ')
{
*p=toupper(*p);
}
}
printf("%s\n",str);
}
}
再问: 在杭电acm里测试通不过 是Output Limit Exceeded 能告诉我是怎么回事吗
再答: 杭电OJ的话,要按照格式来,原题是什么样的 用下面的代码先试一下,要是不行,把原题发出来,再改 #include #include void main() { char str[100],*p; while(gets(str)!=NULL) { p=str; *p=toupper(*p); for(p=str+1;*p!='\0';p++) { if(*(p-1)==' ') { *p=toupper(*p); } } printf("%s\n",str); } }
再问: 可以了谢谢,能再问一下while(gets(str)!=EOF)为什么要改成while(gets(str)!=NULL)吗,、 刚学c语言,很多都不懂
再答: 原先的那个是在你原来的基础上改的,所以当时我也没有多想,得出个正确的结果也就没有细想,实际上是有问题的 这里利用的了gets函数返回值 http://baike.baidu.com/view/1457521.htm 刚学就做acm个人感觉有点急了,当然杭电确实也有很多简单的题,但是个人感觉条条框框太多了,初学的话,没有这个必要