替换空格

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

做法一:Java

    public String replaceSpace(StringBuffer str) {
        if(str == null)
            return null;
        for(int i = 0; i < str.length(); i++)
        {
            if(str.charAt(i) == ' ')
            {
                str.replace(i , i+1 , "%20");
            }
        }
        return str.toString();
    }

注意:StringBuffer的replace函数参数*(开始位置(包括),结束为止(不包括),替换内容)

charAt函数,toString函数

做法二:C++

    void replaceSpace(char *str,int length) {
      if(str == NULL)
          return;
      int num = 0;
      for(int i = 0; i < length; i++)
      {
          if(str[i] == ' ')
              num++;
      }
      int len = length + 2*num;//替换后字符串的长度
    //从后向前替换
while(length >= 0 && len > length )//知道新字符串的长度与原字符串的长度相等 { if(str[length] == ' ') { str[len--] = '0'; str[len--] = '2'; str[len--] = '%'; } else { str[len--] = str[length];//length不能减1,''也要复制 } length--; } }
原文地址:https://www.cnblogs.com/Lune-Qiu/p/8485980.html