Lời giải:
Các bước để giải bài toán:
tokens
(với C++, có thể dùng kiểu dữ liệu vector<string>
để biểu diễn mảng tokens
).tokens
. Với mỗi xâu s, ta cần chuyển kí tự đầu tiên sang kí tự in hoa và các kí tự còn lại sang kí tự in thường.tokens
ra output.Đối với ngôn ngữ C++:
getline(cin, line)
.line
, ta có thể sử dụng kiểu dữ liệu stringstream
. Kiểu dữ liệu này cho phép tạo một luồng từ xâu cho trước, và từ luồng đó có thể lần lượt đọc vào các từ trong xâu (tương tự như viêc đọc từ luồng nhập chuẩn cin).toupper(c)
.tolower(c)
.Mã nguồn tham khảo:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
string line;
getline(cin, line);
while (n--) {
getline(cin, line);
vector<string> name;
stringstream ss(line);
string s;
while (ss >> s) {
s[0] = toupper(s[0]);
for(int i = 1; i < s.length(); ++i)
s[i] = tolower(s[i]);
name.push_back(s);
}
for(int i = 0; i < name.size(); ++i) {
cout << name[i];
if (i < name.size() - 1)
cout << " ";
}
cout << endl;
}
return 0;
}
Tìm hiểu thêm về các keyword cho bài toán này: implementation, string