问题描述:
输入一个英文句子,将每个单词的第一个字母改成大写字母。
输入:
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出:
请输出按照要求改写后的英文句子。
样例输入:
i like acm
i want to get an accepted
样例输出:
I Like Acm
I Want To Get An Accepted
分析:
本题要做到能够将空格读入,则不能使用scanf和cin,可以使用gets函数,使用字符数组保存输入的字符串。
接下来在一个for循环中直接对数据操作并输出即可。
代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
while (gets_s(str,100))
{
str[0] = str[0] - 32;//对第一个字符进行变成大写的操作
printf("%c", str[0]);//输出第一个字符
for (int i = 1; i < int(strlen(str)); ++i)//遍历第一个字符后面的所有字符
{
if (str[i -1] == ' ')//当满足条件时,进行小写换成大写字符的操作
str[i] = str[i] - 32;//32是ASCII中没一个字符的大写与小写的差值
printf("%c", str[i]);//对所有的字符输出
}
printf("\n");
} return 0;
}