替换空格
来源:互联网 发布:linux yum 安装mysql 编辑:程序博客网 时间:2024/06/02 02:50
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
(在网络编程中,如果URL参数中含有特殊字符,如空格、‘#’等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在‘%’后面跟上ASCII码的两位十六进制的表示。)
直观做法:
void replaceSpace(char *str,int length) {int i,j;for(i=0;i<length;){if(str[i]==' '){for(j=length-1;j>i;j--){str[j+2]=str[j];}str[i]='%';str[i+1]='2';str[i+2]='0';i+=2;length+=2;}else {i++;}}}
从前往后替换,期间注意由于是用三个字符替换一个字符,空格后面的字符处理不当会被覆盖。此方法的时间复杂度为O(n2)。
采用从后往前的思路,每个字符都只复制一次,使得算法的时间效率为O(n):
void replaceSpace(char *str,int length) {int origeLength=0;int BlankLength=0;int i=0;while(str[i]!='\0'){origeLength++;if(str[i]==' ')BlankLength++;i++;}int indexa=origeLength;int indexb=origeLength+BlankLength*2;while(origeLength>=0 && indexb>indexa){if(str[indexa]==' '){str[indexb--]='0';str[indexb--]='2';str[indexb--]='%';}else{str[indexb--]=str[indexa];}--indexa;}}
阅读全文
0 0
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 1012. 数字分类 (20)
- 基于javaMail的邮件发送--excel作为附件
- 项目管理利器—maven
- css选择器
- kubernetes1.8.4安装指南 -- 3. 安装docker ce
- 替换空格
- Android多媒体
- Ansible 基础入门-Playbook
- 微信小程序web-view的简单思考和实践
- js 判断对象是否为空字符串
- ubuntu apt-get
- 培训营的第三天
- 多继承中的三角问题(虚继承来解决)
- java就业前景很好:四大就业方向可供选择