牛客网-剑指offer-替换空格

来源:互联网 发布:pdf 安卓 知乎 编辑:程序博客网 时间:2024/05/22 15:44

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


class Solution {public:    void replaceSpace(char *str,int length) {        int SpaceNum = 0; //空格数量        int OrgStrLen = 0, NewStrLen = 0;        int i, len1, len2;        if (str == NULL || length < 0)            return ;        //记录原始字符串长度和空格数量        for (i = 0; str[i] != '\0'; i++)        {            OrgStrLen++;            if (str[i] == ' ')                SpaceNum++;        }        //记录 空格替换为%20后的新的字符串长度        NewStrLen = OrgStrLen + 2 * SpaceNum;        if(NewStrLen > length)            return ;        str[NewStrLen] = '\0';        //len1、len2为字符串下标        len1 = OrgStrLen - 1;        len2 = NewStrLen - 1;        while(len1 >= 0 && len2 > len1)        {            if (str[len1] == ' ')            {                str[len2--] = '0';                str[len2--] = '2';                str[len2--] = '%';            }            else{                str[len2--] = str[len1];            }            len1--;        }    }};
原创粉丝点击