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

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

 

思路:检测到有空格时,把数组长度增加2,空格后每个元素向后移2格

 

 

 

测试代码如下:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #define n 5000
 4 
 5 void replaceSpace(char *str,int length) { 
 6 
 7   for(int i = 0; i < length; i ++){ 
 8           if(*(str+i) == ' '){ 
 9             length += 2; 
10              int j = length -1; //j在字符串最后一个元素的位置
11             while(j!=i){ 
12                   *(str+j) = *(str+j-2); //后移两个
13                   j--; 
14               } 
15              *(str+i) = '%'; 
16               *(str+i+1) = '2'; 
17               *(str+i+2) = '0'; 
18           } 
19    }
20    for(int i=0;i<length ;i++){
21        printf("%c",str[i]);
22    } 
23 
24   }
25 
26   int main(){
27      char a[n];
28      int i;
29      int count=0;
30  //输入字符数组,保存在a数组中
31      for(i=0;i<n;i++){
32          scanf("%c",&a[i]);
33          if(a[i]!='\n'){
34              continue;
35          }else break;
36      }
37      replaceSpace(a,i);
38 }

 

posted on 2017-06-13 15:32  olive_gyr  阅读(194)  评论(0编辑  收藏  举报