题目及解题思路见链接:
https://blog.csdn.net/l_xrui/article/details/51685552
代码如下:
#include <iostream>
using namespace std;
void ReplaceBlanks(char string[], int length)
{
if(string==NULL||length<=0)
return;
int originallength=0;
int numofBlanks=0;
int i=0;
while(string[i]!='\0')
{
++originallength;
if(string[i]==' ')
++numofBlanks;
++i;
}
int newlength=originallength+2*numofBlanks;
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;
}
}
int main()
{
char mystring[]="Are You Happy ?";
ReplaceBlanks(mystring, 1000);
cout << mystring << endl;
return 0;
}