首字母变大写
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 50386 Accepted Submission(s): 27862
Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
Output
请输出按照要求改写后的英文句子。
Sample Input
i like acm
i want to get an accepted
Sample Output
I Like Acm
I Want To Get An Accepted
#include<stdio.h>//首字母变大写
#include<string.h>
int main()
{
char str[100];
int i;
while(gets(str))//这里不用加EOF,学长不太记得了,他说好像gets可以自动判断什么鬼的。然后问了文致,说要研究输入流= =,反正记得就行了
{
if(str[0]!='\0')//判断是否为空字符串
{
if(str[0]!=' ')
str[0]=str[0]-32;//这里也有一个坑,就是asc2码里面,大写是在小写之前的!!
i=1; //一开始傻叉的初始定义为2了,那第一个就不会被读
while(str[i]!='\0')
{
if(str[i-1]==' '&&str[i]!=' ')//判断是否是单词开头
str[i]=str[i]-32;//把开头改成大写,这里也有坑啊,如果说我输入的本来就是大写,再减小就不是这个字符了,应该需要判断是否是小写才对,学长说这题就水在这了,妈的智障啊我,根本没想到= =
i++;
}
puts(str);
}
else
break;
}
return 0;
}