输入一个英文句子,将每个单词的第一个字母改成大写字母。

输入
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出
请输出按照要求改写后的英文句子。
样例输入
i like acm
i want to get an accepted
I‘m new here. where is the cinema?
样例输出
I Like Acm
I Want To Get An Accepted
I‘m New Here. Where Is The Cinema?

我的答案:
#include<stdio.h>
int main()
{
int i,k=0;
char str[100];
while(gets(str)!=NULL)
{
str[0]=str[0]-32;
for(i=0;str[i]!='\0';i++)
{
if(str[i]==' ')
{
str[i+1]=str[i+1]-32;
}
}
printf("%s\n",str);
}
return 0;
}
错误何在???

我们在word 2010输入字母的时候,经常喜欢用小写字母,但假如工作需要,我们必须用大写字母,如果一个一个的去修改,我们就觉得浪费时间了,难道就没有什么好办法,可以批量修改所有字母吗?
第一:按下shift+f3,按第一下,是将单词开头字母变成大写,但后面的还是小写。
按第二下,就会将所有小写字母全部更换成大写字母。同样的,大写字母也可以用这招全部变成小写。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-24
我说,如果内个字母本来就是大写字母,就不需要转换了吧?
大写字母-32成什么了==
加两条if语句检测是不是大写字母就好了本回答被提问者和网友采纳
第2个回答  2017-02-20
Nothing is Impossible.
Practice Makes Perfect.
Love Me,Love My Dog.
第3个回答  2014-11-28
第一个单词没大写
if(str[i]==' '||i==0)追问

str[0]=str[0]-32 已大写

追答

if(str[i]==' ') 标点符号后面也要大写

还有初始化char str[100]={0};

第4个回答  2014-11-28
有什么错?追问

=================
Right:
I‘m New Here. Where Is The Cinema?
-----------------
Your:
)‘m New Here.
=================
Right:
I Like Acm
-----------------
Your:
) ,Ike !cm
=================
不知道为什么会这样。。。

追答

没明白你的意思,说明白点

追问

提交后就显示答案错误 就像上面那样,可是我自己输的时候没什么问题啊。不知道提交后为什么会变成上面那样???

追答

提交到什么地方,我这里试过了也是可以的

追问

学校的oj

追答

你要先确定别人是否能正常运行,不能可能就是你们学校系统有问题。我觉得代码是没有问题的,可以这么写

相似回答