把字符串中的空格都替换为%20
如:we are happy.
we%20are%20happy.
#include<iostream>
using namespace std;
void RepelaceBlank(char arr[],int len)
{
if(arr == NULL ||len<1 )
return;
int oldLen = 0;
int newLen = 0;
int blankNum = 0;
/**********遍历求出数组中的字符长度和空格个数**************/
int i = 0;
while(arr[i]!='\0')
{
oldLen++;
if(arr[i]== ' ')
blankNum++;
i++;
}
/*****************把空格替换为%20*************************/
newLen = oldLen + blankNum*2;
if(newLen >len) return;
int indexOfOld = oldLen;
int indexOfNew = newLen;
while(indexOfNew >indexOfOld &&indexOfOld>=0 )
{
if(arr[indexOfOld]==' ')
{
arr[indexOfNew--]='0';
arr[indexOfNew--]='2';
arr[indexOfNew--]='%';
}
else
arr[indexOfNew--]=arr[indexOfOld];
--indexOfOld;
}
for(int j = 0;j!=strlen(arr);j++)
cout <<arr[j];
cout <<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
char arr[20]="we are happy.";
RepelaceBlank(arr,20);
system("pause");
return 0;
}