【剑指offer】字符串的空格替换
2016-07-05 18:01
771 查看
如何将字符串we are happy中的空格替换成we%20are%20happy这样的字符串,其主要思想是遍历一次字符串,确定空格字符的个数,然后通过空格字符的个数确定目的字符串的长度,1个空格被替换成3个字符,故,空格的个数*2+源字符串的长度+1就是新字符串的长度,之后就是拷贝与替换操作了。用两个指针分别指向新字符串和原字符串的起始位置,若没有空格则执行类似strcpy的操作,若有空格则让新字符串的指针走三次,分别填入“%20”三个字符,然后两个指针一起走,实现代码如下:
#include<iostream>
using namespace std;
int main()
{
char *a = "We are happy";
int count = 0;
char* cur = a;
while (*cur)//遍历确定空格的个数
{
if (*cur == ' ')
count++;
++cur;
}
char *str = (char*)malloc(count * 2 + strlen(a) + 1);//开辟新的空间
cur = str;
while (*a)//填入操作
{
if (*a == ' ')
{
*cur++ = '%';
*cur++ = '2';
*cur++ = '0';
a++;
}
else
{
*cur++ = *a++;
}
}
*cur = 0;
printf("%s", str);
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char *a = "We are happy";
int count = 0;
char* cur = a;
while (*cur)//遍历确定空格的个数
{
if (*cur == ' ')
count++;
++cur;
}
char *str = (char*)malloc(count * 2 + strlen(a) + 1);//开辟新的空间
cur = str;
while (*a)//填入操作
{
if (*a == ' ')
{
*cur++ = '%';
*cur++ = '2';
*cur++ = '0';
a++;
}
else
{
*cur++ = *a++;
}
}
*cur = 0;
printf("%s", str);
system("pause");
return 0;
}
相关文章推荐
- ubuntu系统下,gsl 库链接问题 -undefined reference to `cblas_xxx`
- CSS3媒体查询
- ie678,FF,chrome的css兼容性
- 分享我对JS插件开发的一些感想和心得
- maven karaf 4.0x中使用jetty部署web 应用;karaf 4.0 x离线使用
- 面向对象的JavaScript-009-闭包
- 将HTML5 Canvas的内容保存为图片
- NodeJS学习三之API
- CSS-关于float属性与clear属性
- jquery插件开发
- 深度学习Imagenet caffe AlexNet 实验步骤
- html 页面清浏览器缓存
- 空间数据类型转化——geometry转geoJson转geoShape
- Server.Transfer()和Response.Redirect
- JSBinding / Code Snippets
- 使用Markdown设置文档样式,生成html文件
- htmlparser API
- HTML笔记(CSS格式排版)
- javascript内建对象String,Array,Math,Date()
- BZOJ_1027_[JSOI2007]_合金_(计算几何+Floyd求最小环)