码迷,mamicode.com
首页 > 其他好文 > 详细

替换空格

时间:2020-05-01 23:49:19      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:长度   null   lse   pac   space   else   ==   替换   length   

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

class Solution {
public:
  void replaceSpace(char *str,int length) {
  if(str == NULL)
    return ;
  int Oldnum =0; //记录str的数量
  int black = 0; //记录空格的数量
  for(int i=0;str[i] != ‘\0‘;i++)
  {
    Oldnum++;
    if(str[i]==‘ ‘)
    black++;
  }
  int Newnum = Oldnum + 2*black; //新的元素个数
  if(length < Newnum+1) // 总长度小于新的元素个数
    return ;
  int ptrold = Oldnum+1; //加上最后一个‘\0‘
  int ptrnew = Newnum+1;
  while(ptrold >= 0 && ptrnew >ptrold) //这里采用向后插入
  {
    if(str[ptrold] == ‘ ‘)
  {
    str[ptrnew--]=‘0‘;
    str[ptrnew--]=‘2‘;
    str[ptrnew--]=‘%‘;
  }
  else
    str[ptrnew--] = str[ptrold];
    ptrold--;
  }
}
};

记录:字符串结算为‘\0’

替换空格

标签:长度   null   lse   pac   space   else   ==   替换   length   

原文地址:https://www.cnblogs.com/yl1995/p/12815383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!