您的位置:首页 > Web前端

【剑指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;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: