题目要求将句子中的单词首字母都改成大写。
总时间限制: 1000ms 内存限制: 65536kB
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
输入一行:待处理的字符串(长度小于80)。
输出一行:转换后的字符串。
if so, you already have a google account. you can sign in on the right.
If So, You Already Have A Google Account. You Can Sign In On The Right.
首先要判断句子中的单词首字母,主要通过是否为句首或者该字母的前一个字符是分隔符进行判断。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[81];
cin.getline(str, 81);
int i;
if(str[0] >= 'a' && str[0] <= 'z') {
str[0] -= 32;
}
for(i = 1; i < strlen(str); ++i) {
if(str[i] >= 'a' && str[i] <= 'z'
&& (str[i - 1] == ' ' || str[i - 1] == '\t'
|| str[i - 1] == '\r' || str[i - 1] == '\n')) {
str[i] -= 32;
i++;
}
}
cout << str << endl;
return 0;
}
2690.cpp 代码长度:415B 内存:144kB 时间:3ms 通过率:90% 最小内存:144kB 最短时间:0ms
读入带有空格的一行需要使用cin.getline,首先判断第一个字母,其他情况判断前一个字符是否为题目给出的分隔符,之后修改为大写即可。
有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。