您的位置:首页 > Web前端

《剑指offer》替换空格

2016-01-18 20:24 113 查看
题目描述:

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

Solution:

#include <iostream>

using namespace std;

void replaceBlank(char str[],int length)
{
if(str==NULL||length<0) return ;

int originalLength=0;
int numberOfBlank=0;
int i=0;
while(str[i]!='\0')
{
originalLength++;
if(str[i]==' ')
++numberOfBlank;
++i;
}

int newLength=originalLength+numberOfBlank*2;
if(newLength>length)
return;

int indexOfOrignal=originalLength;
int indexOfNew = newLength;

while(indexOfOrignal>=0&&indexOfNew>indexOfOrignal)
{
if(str[indexOfOrignal]==' ')
{
str[indexOfNew--]='0';
str[indexOfNew--]='2';
str[indexOfNew--]='%';
}
else{
str[indexOfNew--]=str[indexOfOrignal];
}
--indexOfOrignal;
}

}
int main()
{
char str[30]="we are happy!";
replaceBlank(str,30);
cout<<str<<endl;
return  0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: