- 題目描述:
- 請實作一個函數,将一個字元串中的空格替換成“%20”。例如,當字元串為We Are Happy.則經過替換之後的字元串為We%20Are%20Happy。
- 輸入:
-
每個輸入檔案僅包含一組測試樣例。
對于每組測試案例,輸入一行代表要處理的字元串。
- 輸出:
- 對應每個測試案例,出經過處理後的字元串。
- 樣例輸入:
-
We Are Happy
- 樣例輸出:
-
We%20Are%20Happy
#include <iostream> #include <fstream> #include <vector> #include <cstdio> using namespace std; /* 題目1510:替換空格 */ void change_blank (string & str, const string & holder) { int blank_num = 0; int len = str.length(); for (int i = 0; i < len; ++i ) { if (str.at(i) == ' ') ++blank_num; } str.resize(len + (blank_num << 1)); for (int i = str.size()-1, j = len-1; j>=0 && i>=j; --j) { if (str.at(j) != ' ') str.at(i--) = str.at(j); else { for (int k = holder.length() - 1; k >= 0; --k) str.at(i--) = holder.at(k); } } } int main () { string str; const string holder = "%20"; while (getline(cin, str)) { change_blank (str, holder); cout << str <<endl; } } /************************************************************** Problem: 1510 User: 小康師傅 Language: C++ Result: Accepted Time:20 ms Memory:2064 kb ****************************************************************/