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

2,替换空格 《剑指offer》

时间:2017-09-04 11:52:28      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:++   off   替换   int   赋值   长度   pre   har   strong   

题目:

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

思路:

遍历两遍的字符串数组;第一遍记录空格的个数num,由num和字符串长度可以计算出新的字符串的长度newLength;第二遍替换,从字符串的最末尾开始遍历:

  1,如果不是空格,赋值到新字符串的对应位置,;

  2,如果是空格,赋值对应的%20到新字符串的对应位置;

代码:

//c++
void replaceSpace(char *str,int length) {
         int newLength=0;
         int i=0; 
         int num=0;
         while(str[i]!=‘\0‘){
             if(str[i]==‘ ‘){
                 num++;
             }  
             i++;
         }
         newLength=i+num*2;
         if(newLength>length) return;
         while(i!=-1){
            if(str[i]==‘ ‘){
                str[newLength--]=‘0‘;
                str[newLength--]=‘2‘;
                str[newLength]=‘%‘;
            }else{
                str[newLength]=str[i];
            }
             i--;
             newLength--;
         }
	}

  

2,替换空格 《剑指offer》

标签:++   off   替换   int   赋值   长度   pre   har   strong   

原文地址:http://www.cnblogs.com/llauser/p/7472627.html

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