题目:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
代码如下:
#include <stdio.h>
#include <iostream>
using namespace std;
class Solution {
public:
void replaceSpace(char *str, int length) {
int blankNum = 0;
int oldstrLen;
for (oldstrLen = 0; str[oldstrLen] != '\0'; oldstrLen++){
if (str[oldstrLen] == ' ')
blankNum++;
}
int newstrLen = oldstrLen + blankNum * 2;
/* if (newstrLen > length);
return;*/
str[newstrLen] = '\0';
int pos1 = oldstrLen - 1;
int pos2 = newstrLen - 1;
while (pos1 >= 0 && pos2 > pos1){
if (str[pos1] == ' '){
str[pos2--] = '0';
str[pos2--] = '2';
str[pos2--] = '%';
}
else
str[pos2--] = str[pos1];
pos1--;
}
}
};
int main()
{
char arr[] = { "we are happy" };
Solution ret;
ret.replaceSpace(arr, 30);
cout << arr << endl;
getchar();
return 0;
}