<span style="font-size:18px;">题目: 将字符串中的空格替换成%20</span>
</pre><pre name="code" class="cpp">/*
* 剑指offer 面试题04
* Ajax
* 2014-7-23
*/
#include<stdio.h>
#include <string.h>
#define StrSzie 50
void ReplaceBlack(char string [],int length);
int main(void)
{
char strA[StrSzie] ;
while(1)
{
gets(strA);
ReplaceBlack(strA, StrSzie);
}
return 0;
}
void ReplaceBlack(char string [],int length)
{
if(NULL == string && length < 0)
return ;
int originalLength = 0;
int numberBlank = 0;
int i = 0;
while(string[i] !='\0')
{
++ originalLength;
if(string[i] ==' ')
++numberBlank;
++ i;
}
int newlength = originalLength + numberBlank *2 ;
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;
}
printf("%s",string);
}