您的位置:首页 > 其它

算法题目---替换空格

2017-06-30 09:52 295 查看
请实现一个函数,把字符串中的每个空格替换成"%02",例如输入"We are happy.",则输出" We%20are%20happy."

using namespace std;

void ReplaceBlank(char string[],int length)

{

if(string == NULL || length <= 0)

{

return ;

}

int originalLength = 0;

int numberOfBlank = 0;

int i = 0;

while(string[i] != '\0')

{

++originalLength;

if(string[i] == ' ')

++ numberOfBlank;

++i;

}

int newLength = originalLength + numberOfBlank * 2;

if(newLength > length)

return;

int indexOfOriginal = originalLength;

int indexOfNew = newLength;

while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal)

{

if(string[indexOfOriginal] == ' ')

{

string[indexOfNew--] = '0';

string[indexOfNew--] = '2';

string[indexOfNew--] = '%';

}

else

{

string[indexOfNew--] = string[indexOfOriginal];

}

-- indexOfOriginal;

}

}

void test()

{

char string [20] = "w d";

printf("%s\n",string);

ReplaceBlank(string,20);

printf("%s\n",string);

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