剑指offer---替换空格

来源:互联网 发布:perl 数组查找字符串 编辑:程序博客网 时间:2024/06/14 19:27

面试题4:实现一个函数,把字符串中的每个空格替换成“%20”。

思路:时间复杂为O(n),在源字符串上操作,从后往前进行替换。

#include<stdio.h>#include<string.h>//替换空格--》%20#define MAX 50int main(){char str[MAX]=" we  are happy ";int len=strlen(str);//遍历一遍,求出空格的个数O(n)int i=0;int count=0;for(i=0;i<len;++i){if(str[i]==' ')count++;}//从后向前替换char *p1=str+len;//指向最后的\0char *p2=str+len+2*count;while(len>=0) //p1<=p2{if(*p1!=' '){*p2=*p1;--p1;--p2;--len;}else{--p1;--len;    *p2='0';--p2;*p2='2';--p2;*p2='%';--p2;}}    printf("%s\n",str);return 0;}

0 0
原创粉丝点击