基本思路:先计算空格总数 n,新的数组长度为 length + n*2,从后往前赋值。
#include<iostream>
#include<string>
using namespace std;
void replaceSpace(char *str,int length) {
int blank = 0;
int k = 0;
for(int i = 0; i<length; i++)
{
if(str[i] == 32)
blank++;
}
for(int i = length ; i>=0; i--)
{
if(str[i] != 32)
str[length + blank*2 - k++] = str[i];
else
{
str[length + blank*2 - k++] = '0';
str[length + blank*2 - k++] = '2';
str[length + blank*2 - k++] = '%';
}
}
}
int main()
{
char s[12]="we are good";
replaceSpace(s ,12);
cout<<s;
return 0;
}