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

4 替换空格

时间:2017-11-14 00:19:56      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:etc   pac   tostring   etl   tchar   ldl   一个   style   实现   

 

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

 

 

 

C++:

 1 class Solution {
 2 public:
 3     void replaceSpace(char *str,int length) {
 4         int blankNum = 0 ;
 5         for(int i = 0 ; i < length ; i++){
 6             if (str[i] ==  )
 7                 blankNum++ ;
 8         }
 9         int newLen = 2*blankNum+length ;
10         int p1 = length;
11         int p2 = newLen;
12         for(; p1 >= 0 && p1 < p2; p1--){
13             if (str[p1] ==  ){
14                 str[p2--] = 0 ;
15                 str[p2--] = 2 ;
16                 str[p2--] = % ;
17             }else{
18                 str[p2--] = str[p1] ;
19             }
20         }
21     }
22 };

 

 

C++:

 1 void ReplaceBlank(char ch[] , int len){
 2     if (ch == NULL || len <= 0)
 3        return ;
 4     int oldLen = 0 ;
 5     int newLen = 0 ;
 6     int blankNum = 0 ;
 7     for (int i = 0; ch[i] != \0;i++ ){
 8         oldLen++ ;
 9         if (ch[i] ==  )
10             blankNum++ ;
11     }
12     newLen = oldLen + blankNum * 2 ;
13     if (newLen > len)
14         return ;
15     int p1 = oldLen ;
16     int p2 = newLen ;
17 
18     while(p1 >= 0 && p2 > p1){
19         if (ch[p1] ==  ){
20             ch[p2--] = 0 ;
21             ch[p2--] = 2 ;
22             ch[p2--] = % ;
23         }else{
24             ch[p2--] = ch[p1] ;
25         }
26         p1-- ;
27     }
28 
29 
30 }

 

java:

 1 public class Solution {
 2     public String replaceSpace(StringBuffer str) {
 3         int blankNum = 0 ;
 4         int oldLen = str.length();
 5         for (int i = 0 ; i < oldLen ; i++){
 6             if (str.charAt(i) == ‘ ‘){
 7                 blankNum++ ;
 8             }
 9         }
10         int newLen = 2*blankNum+oldLen ;
11         str.setLength(newLen) ;
12         int p1 = oldLen-1 ;
13         int p2 = newLen-1 ;
14         for (; p1 >= 0 && p1 < p2 ; p1--){
15             if (str.charAt(p1) == ‘ ‘){
16                 str.setCharAt(p2--,‘0‘) ;
17                 str.setCharAt(p2--,‘2‘) ;
18                 str.setCharAt(p2--,‘%‘) ;
19             }else{
20                 str.setCharAt(p2--,str.charAt(p1)) ;
21             }
22         }
23         return str.toString() ;
24     }
25 }

 

4 替换空格

标签:etc   pac   tostring   etl   tchar   ldl   一个   style   实现   

原文地址:http://www.cnblogs.com/mengchunchen/p/7829054.html

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