#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
string f;
while (getline(cin, str) ) {
for (int i = 0; i < str.size(); i++) {
if ((i == 0 && (str[i] >= 'a' && str[i] <= 'z' ) ) || (str[i - 1] == ' ' && (str[i] >= 'a' && str[i] <= 'z' ))) {
f = f + (char)(str[i] - 32);
} else {
f = f + (char)str[i];
}
}
cout << f << endl;
f = "";
}
return 0;
}
为了方便理解,这里。重新定义一个string f,用来储存将每个单词首字母变成大写字母后,所有字符的输出。
内重循环则是实现将每个单词首字母变成大写字母。 尤其注意每个单词的第一个字符可能不是字母(包括第一个单词),因此在if判断语句中需要考虑多种产生bug的情况。