找到空格有多少个,从后遍历,遇到空格就替换o(n)复杂度
#include<cstdio>
#include<cstring>
char str[1111111];
int main()
{
while(gets(str))
{
int cnt=0;
int len=strlen(str);
for(int i=0;i<len;++i)
{
if(str[i] == ' ')
cnt++;
}
int t =len + cnt*2-1;
str[t+1]='\0';
for(int i = len-1;i >= 0; --i)
{
if(str[i] == ' ')
{
str[t--]='0';
str[t--]='2';
str[t--]='%';
}
else
str[t--]=str[i];
}
printf("%s\n",str);
}
return 0;
}