字符串替换问题思路1:从前往后的思想替换为从后往前的思想。

//把字符串中的每个空格替换成"%20"。

#include "stdafx.h"
#include <iostream>
using namespace std;
#define length 100

void ReplaceBlank(char string[])
{
	if(string==NULL)
		return ;
	
	int originalLength=0;//字符串的实际长度
	int numberOfBlank=0;//空格的个数
	int i=0;
	while(string[i]!='\0')
	{
		++originalLength;
		if(string[i]==' ')
			++numberOfBlank;
		++i;
	}
	int newLength=originalLength+2*numberOfBlank;//新字符串的长度
	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 _tmain(int argc, _TCHAR* argv[])
{
	char str[length]="We are happy";
	ReplaceBlank(str);
	cout<<str<<endl;
	return 0;
}