替换空格

题目描述:

  请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解题思路:

  使用额外的空间存储结果即可。判断一下为空或者没有空格的情况即可。

代码:

 1 class Solution {
 2 public:
 3     void replaceSpace(char *str,int length) {
 4         if(str == NULL)
 5             return;
 6         int spaceNum = 0;
 7         for(int i = 0; i < length; i++)
 8         {
 9             if(str[i] == ' ')
10                 spaceNum++;
11         }
12         if(spaceNum == 0)
13             return;
14         char *t = new char[length + spaceNum * 3];
15         int p = 0;
16         for(int i = 0; i < length; i++)
17         {
18             if(str[i] == ' ')
19             {
20                 t[p++] = '%';
21                 t[p++] = '2';
22                 t[p++] = '0';
23             }
24             else
25                 t[p++] = str[i];
26         }
27         t[p] = '\0';
28         strcpy(str,t);
29     }
30 };

 

posted @ 2018-03-15 20:46  康小武  阅读(145)  评论(0编辑  收藏  举报