杭电 2026 首字母变大写(题目有点水,但不妨碍我比它更水= =)

首字母变大写

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//首字母变大写
#include
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;
}

你可能感兴趣的:(各类error,杭电,2016.9)