[Jobdu]タイトル1510:スペースの置換

4827 ワード

タイトルの説明:
文字列のスペースを「%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 }