//土尔逊Torson 编写于2023/4/20
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
bool isSpliter(char c) {//在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\0') {
return true;
}
else {
return false;
}
}
int main() {
//双指针步进即可,用string再split太慢了
//scanf会吃掉空格,用getline
string words;
while (getline(cin, words)) {
words = words + '\0'; //末尾加结束符,因为循环时会跳过结尾处,处理字符串要注意边界问题。
int i = 0, j = 0;
while (words[j] != '\0' && words[i] != '\0') {
while (!isSpliter(words[j])) j++;
if ('a' <= words[i] && words[i] <= 'z') words[i] -= 32;
i = ++j;
}
words = words.substr(0, words.size() - 1); //恢复原始大小
printf("%s\n", words.c_str());
}
//system("pause");
return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")