替换空格

1.选择从前向后   替换空格

每次重复挪动;效率低;

算法时间复杂度 O(n²)

2.选择从前向后   替换空格

利用两个指针操作!!

 1 void replaceSpace(char * str,int length)
 2 {
 3   if(str==NULL||length<=0)
 4       return;
 5   char * p1, *p2;
 6   int k=0;
 7   //首先遍历字符串 看有几个空格
 8 
 9   for(int i=0;i<length;i++)
10   {
11    if(str[i]==32) //这么表示也可以             //ASCII  .空格是32
12     k++;
13   }
14    int add=k*3-k;//后移字节大小
15    p1=str+length-1;
16    p2=str+length-1+add;
17 
18    while (p2!=p1)//结束条件
19    {
20 
21     if((*p1)!=32)
22     {
23          *p2=*p1;
24 
25           p1--;
26           p2--;//向前移动
27     }else //遇到空格
28     {
29         *p2--='0';
30         *p2--='2';
31         *p2--='%';
32         p1--;
33     }
34 
35    }

 

posted @ 2019-08-16 21:12  高颖1995  阅读(95)  评论(0编辑  收藏  举报