替换空格

来源:互联网 发布:怎么分辨mac口红真假 编辑:程序博客网 时间:2024/05/23 19:56

问题描述

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

分析

假设原字符串长度为oriLength,先统计字符串中空格数目b_num,可得到替换后的字符串大小应为b_num*2+oriLength,然后进行从后往前进行检测空格,并赋值。

我的提交

class Solution {public:    void replaceSpace(char *str,int length) {         if(nullptr==str)             return;         int oriLen = 0, destLen = 0, blankNum = 0;         for(int i=0;str[i]!='\0';i++){             if(str[i] == ' ')                 ++blankNum;             ++oriLen;         }        destLen = oriLen + 2*blankNum;        if(destLen>=length)            return;        str[destLen] = '\0';        int destIndex = destLen-1;        int oriIndex = oriLen -1;        while(oriIndex >= 0){            if(str[oriIndex] == ' '){                str[destIndex--] = '0';                str[destIndex--] = '2';                str[destIndex--] = '%';            }            else              str[destIndex--]= str[oriIndex];            --oriIndex;        }    }};
0 0
原创粉丝点击