您的位置:首页 > Web前端

牛客网-剑指offer-替换空格

2017-08-17 09:50 501 查看
题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串We%20Are%20Happy。

class Solution {
public:
void replaceSpace(char *str,int length) {
int SpaceNum = 0; //空格数量
int OrgStrLen = 0, NewStrLen = 0;
int i, len1, len2;

if (str == NULL || length < 0)
return ;
//记录原始字符串长度和空格数量
for (i = 0; str[i] != '\0'; i++)
{
OrgStrLen++;

if (str[i] == ' ')
SpaceNum++;
}

//记录 空格替换为%20后的新的字符串长度
NewStrLen = OrgStrLen + 2 * SpaceNum;
if(NewStrLen > length)
return ;

str[NewStrLen] = '\0';

//len1、len2为字符串下标
len1 = OrgStrLen - 1;
len2 = NewStrLen - 1;

while(len1 >= 0 && len2 > len1)
{
if (str[len1] == ' ')
{
str[len2--] = '0';
str[len2--] = '2';
str[len2--] = '%';
}
else{
str[len2--] = str[len1];
}
len1--;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: