比如使用%20代替源字符串中空格
要求O(1)的空间复杂度,所以考虑从后往前移动源字符串
#include <iostream>
#include <string>
using namespace std;
void InsertStrintWithWords(char a[100],int len)
{
//%20
int i=0;
int spaceNumber=0;
for(i=0;i<=len;i++)
{
if(a[i]==' ')
spaceNumber++;
}
int end=len+2*spaceNumber;
for(i=len;i>=0;i--)
{
if(a[i]!=' ')
a[end--]=a[i];
else
{
a[end--]='0';
a[end--]='2';
a[end--]='%';
}
}
end=len+2*spaceNumber;
for(int i=0;i<=end;i++)
{
cout<<a[i]<<" ";
}
}
int main()
{
char a[100]={"a b c"};
InsertStrintWithWords(a,6);
return 0;
}