剑指offer例题4—替换空格

#include<iostream>
#include<string>
using namespace std;
void ReplaceBlank(char *str,int length)
{
 if(str==NULL&&length<0)return;
 int i=0;
 int j=0;
 for(i=0;str[i]!='\0';i++)
 {
  if(str[i]==' ')j++;
 }
 int newlength=i+2*j;
 if(newlength>=length)return;
 int l=i-1;
 for(int k=newlength-1;k>=0&&k>=l;)
 {
  if(str[l]==' ')
  {
   str[k--]='0';
   str[k--]='2';
   str[k--]='%';
   l--;
  }
  else
   str[k--]=str[l--];
 }
 str[newlength]='\0';
}
int main()
{
 int n=100;char str[100];
 while(gets(str))
 { 
  ReplaceBlank(str,n);
     cout<<str<<endl;
 }
 return 0;
}

原文地址:https://www.cnblogs.com/tgkx1054/p/2839183.html