首页 > 代码库 > 剑指OFFER之替换空格

剑指OFFER之替换空格

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

 

输入:

每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。

 

输出:

对应每个测试案例,出经过处理后的字符串。

 

样例输入:
We Are Happy
样例输出:
We%20Are%20Happy

Code:
#include <stdio.h>#include <stdlib.h> void ReplaceBlank(char str[]){    if(str==NULL)        return;    int originalLength=0;    int numberOfBlank=0;    int i=0;    while(str[i]!=\0){        ++originalLength;        if(str[i]== ){            ++numberOfBlank;        }        ++i;    }    int newLength=originalLength+2*numberOfBlank;    while(originalLength>=0){        if(str[originalLength]!= ){            str[newLength--]=str[originalLength--];        }else{            --originalLength;            str[newLength--]=0;            str[newLength--]=2;            str[newLength--]=%;        }    }} int main(){    char str[1000000];    while(gets(str)){        ReplaceBlank(str);        printf("%s\n",str);    }    return 0;} /**************************************************************    Problem: 1510    User: lcyvino    Language: C    Result: Accepted    Time:10 ms    Memory:1820 kb****************************************************************/

 

剑指OFFER之替换空格