-
题目描述:
-
请实现一个函数,将一个字符串中的空格替换成“%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 ****************************************************************/