C/C++编程学习 - 第13周 ⑦ 首字母变大写

题目链接

题目描述

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

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;
}

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/113127277