替换空格
Posted cgy1012
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换空格相关的知识,希望对你有一定的参考价值。
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
以上是关于替换空格的主要内容,如果未能解决你的问题,请参考以下文章