题目描述
输入一个英文句子,将每个单词的第一个字母改成大写字母。
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
思路
设置一个标记变量flag,用于标记是否为单词的第一个字母,初值为0,表示是第一个字母。如果遇到第一个字母,并且这个字母是小写字母,则输出它的大写字母,然后置标记变量flag为1;如果flag为1的时候,遇到了空格,说明这个单词已经结束了,那么标记变量flag置为0,表示遇到的下一个字母应当变为大写字母。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
while(getline(cin, str))
{
int flag = 0, len = str.length();
for(int i = 0; i < len; i++)
{
if(flag == 0)
{
if(str[i] >= 'a' && str[i] <= 'z')
{
str[i] -= 32;
flag = 1;
}
}
else if(flag == 1)
{
if(str[i] == ' ')
flag = 0;
}
}
cout << str << endl;
}
return 0;
}