[Jobdu]タイトル1510:スペースの置換
4827 ワード
タイトルの説明:
文字列のスペースを「%20」に置き換える関数を実装してください.例えば、文字列がWe Are Happyである.置換後の文字列は、We%20 Are%20 Happyである.
入力:
各入力ファイルには、テストサンプルのセットのみが含まれます.各テストケースのセットについて、処理する文字列を表す行を入力します.
出力:
各テストケースに対応して、処理された文字列を出力します.
サンプル入力:
サンプル出力:
配列を後から前へ処理します.
文字列のスペースを「%20」に置き換える関数を実装してください.例えば、文字列がWe Are Happyである.置換後の文字列は、We%20 Are%20 Happyである.
入力:
各入力ファイルには、テストサンプルのセットのみが含まれます.各テストケースのセットについて、処理する文字列を表す行を入力します.
出力:
各テストケースに対応して、処理された文字列を出力します.
サンプル入力:
We Are Happy
サンプル出力:
We%20Are%20Happy
配列を後から前へ処理します.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 int main() {
6 int count;
7 int size;
8 string s;
9 while (getline(cin, s)) {
10 count = 0;
11 size = s.size();
12 for (int i = 0; i < size; ++i)
13 if (s[i] == ' ')
14 ++count;
15
16 s.resize(size + 2 * count);
17
18 for (int i = size; i >= 0; --i) {
19 if (s[i] == ' ') {
20 s[i + 2 * count] = '0';
21 s[i + 2 * count - 1] = '2';
22 s[i + 2 * count - 2] = '%';
23 --count;
24 } else {
25 s[i + 2 * count] = s[i];
26 }
27 }
28 cout << s << endl;
29 }
30 return 0;
31 }