剑指offer 2.替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。

例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解法: 

class Solution {
public:
	void replaceSpace(char *str,int length) {
    if (str == nullptr || length < 0)
			return ;
		int count = 0;//记录空格数
		int i = 0;
        int num = 0;
		while (str[i] != '\0')
		{
            num++;
			if (str[i] == ' ')
				count++;
			i++;
		}
		int first = num;
		int last = first + 2 * count;
		if (last > length)
			return;
		while (first>=0 && last>first)
		{
			if (str[first] == ' ')
			{
				str[last--] = '0';
				str[last--] = '2';
				str[last--] = '%';
			}
			else
			{
				str[last] = str[first];
				last--;
			}
			first--;
		}
	}
};

猜你喜欢

转载自blog.csdn.net/u010760034/article/details/83275349