替换空格
2016-01-15 23:18
260 查看
代码如下:
#include<stdio.h> #include<stdlib.h> void ReplaceBlank( char* str, int len) { if (str == NULL||len <= 0) { return; } int originalLen = 0; int numberOfBlank = 0; int i = 0; while (str[i]!='\0') { ++originalLen; if (str[i] == ' ') ++numberOfBlank; ++i; } int newLen = originalLen + numberOfBlank * 2; if (newLen > len) { return; } int index0fOriginal = originalLen; int indexOfNew = newLen; while (index0fOriginal >= 0 && indexOfNew>index0fOriginal) { if (str[index0fOriginal] == ' ') { str[indexOfNew--] = '0';//因为要传入‘\0’ str[indexOfNew--] = '2'; str[indexOfNew--] = '%'; } else { str[indexOfNew--] = str[index0fOriginal]; } --index0fOriginal; } } int main() { char str[30] = "we are happy"; ReplaceBlank(str, sizeof(str)/sizeof(str[1])); printf("%s",str); system("pause"); return 0; }核心代码:
void ReplaceBlank( char* str, int len) { if (str == NULL||len <= 0) { return; } int originalLen = 0; int numberOfBlank = 0; int i = 0; while (str[i]!='\0') { ++originalLen; if (str[i] == ' ') ++numberOfBlank; ++i; } int newLen = originalLen + numberOfBlank * 2; if (newLen > len) { return; } int index0fOriginal = originalLen; int indexOfNew = newLen; while (index0fOriginal >= 0 && indexOfNew>index0fOriginal) { if (str[index0fOriginal] == ' ') { str[indexOfNew--] = '0';//因为要传入‘\0’ str[indexOfNew--] = '2'; str[indexOfNew--] = '%'; } else { str[indexOfNew--] = str[index0fOriginal]; } --index0fOriginal; } }
相关文章推荐
- 1月15日上课笔记
- JTree树转存为xml文件
- 读gh0st代码---发文于2015.8.30
- Linux下安装Zookeeper
- Spring核心IOC容器实现分析
- 百度工作两年总结---发于2015.8.22
- Marked Ancestor
- ubuntu eclipse菜单栏消失的解决
- ios开发之动画组
- 探索Android调用系统的分享功能
- ndis中间层驱动总结---发文于2014.1.21
- win32创建空窗口
- 三层架构dal 层基本代码 非查询/查询
- Android Annotations快速开发框架入门
- Meteor优秀学习资源-学习路线
- git缩写配置
- Qwt中动态绘图时如何将当前图像作为原始态进行缩放操作
- 主从集群搭建及容灾部署redis
- 乱世三国
- 三层架构自我总结