替换空格

2020-05-01  本文已影响0人  su945

题目描述

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

问题分析

解题思路1

class Solution {
public:
    void replaceSpace(char *str, int length) {

        //注意length是数组长度,并不是字符串长度
        //思路首先明确空格数
        if (str == NULL)
        {
            return;
        }
        int emptyNum = 0;
        int strlength = 0;
        while (str[strlength] != '\0')
        {
            if (str[strlength] == ' ')
            {
                emptyNum++;
            }
            strlength++;

        }
        //声明一个新字符数组
        int newLenght = strlength + 2 * emptyNum;
        if (newLenght >length)
        {
            return;
        }
        while (newLenght > strlength && strlength >= 0)
        {
            if (str[strlength] != ' ')
            {
                str[newLenght] = str[strlength];
                strlength--;
                newLenght--;
            }
            else
            {
                str[newLenght] = '0';
                str[newLenght-1] = '2';
                str[newLenght-2] = '%';
                strlength--;
                newLenght -= 3 ;
            }
        }
    }
};

参考

https://github.com/WordZzzz/Note/commit/6122b68a48e8b53e4ae59d400da4360af779058d

上一篇 下一篇

猜你喜欢

热点阅读