字符串替换问题思路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;
}
浙公网安备 33010602011771号