c760 - 蝸牛老師的點名單 (懶憜篇)
題目描述
題目要求讀取一行包含多個以空白分隔的學生名字,並將每個名字的首字母轉換為大寫後單獨輸出。輸入的名字都是小寫字母組成。
解題思路
這題的解題思路非常簡單,主要分為以下幾個步驟:
- 讀取輸入的字串。
- 遍歷字串中的每個名字,以空白作為分隔符。
- 對每個名字,將其第一個字元轉換為大寫。
- 輸出轉換後的字串。
程式碼中,a[0]-=32; 的作用就是將小寫字母轉換為大寫字母。ASCII 碼中,大寫字母和對應的小寫字母相差 32。
複雜度分析
- 時間複雜度: O(n*m),其中 n 是名字的數量,m 是每個名字的平均長度。
- 空間複雜度: O(m),其中 m 是最長名字的長度,用於儲存轉換後的字串。
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
while(cin >> a){
a[0]-=32;
cout << a << endl;
}
}