实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路一
#include<iostream>
using namespace std;
class Solution {
public:
void replaceSpace(char* str, int length) {
if (*str == NULL || length < 0)
return;
int num = 0, i = 0;
char* str1 = str;
while (*str1 != '\0'){
if (*str1++ == ' ')
num += 2;
}
str = --str1;
str1 += num+1 ;
*str1-- = '\0';
while (*str != '\0'){
if (*str != ' ')
*str1-- = *str;
if (*str == ' '){
*str1-- = '0';
*str1-- = '2';
*str1-- = '%';
}
str--;
}
}
};
int main()
{
char arr[20] = "We Are Happy";
Solution sol;
sol.replaceSpace(arr, 20);
cout << arr<< endl;
return 0;
}
思路二
#include<iostream>
using namespace std;
class Solution {
public:
char* replaceSpace(char* str, int length)
{
char* str1 = new char[length];
int num = 0,j=0;
for (int i = 0; i < (length - 1 + num); j++,i++)
{
if (str[j] != ' ')
str1[i] = str[j];
else
{
str1[i++] = '%';
str1[i++] = '2';
str1[i] = '0';
num += 2;
}
}
return str1;
}
};
int main()
{
char arr[] = "We Are Happy\0";
Solution a;
cout << a.replaceSpace(arr, 13)<< endl;
return 0;
}