空格字符替换成“%20”

Posted on 2017-09-17

比如 a b c

思路

  • 1.遍历字符串str,发现空格数量为2,且度为5.
  • 2.故替换后的字符串长度因该为5+2*2=9
  • 3.从第八位开始往前拷贝,遇到C,就把C放置在第八位,遇到空格就依次拷贝02%,遇到b放入,遇到a停止。

’’’’

class Solution {
	public:
   	 		void replaceSpace(char *str,int length) {
 
		int len = 0;
		
		if (length == 0)
		{
			return;
		}


		int space_num = 0;

		for (int i = 0; str[i] != '\0'; i++) 
        {
			len++;
			if (str[i] == ' ') {
				space_num++;
			}
		}


		int len_after;
		len_after = len + space_num * 2;

		// str[len_after] = '\0';

		for (int i = len; i >= 0; i--) 
        {
			if (str[i] == ' ') {
				str[len_after--] = '0';
				str[len_after--] = '2';
				str[len_after--] = '%';
			}
			else {
				str[len_after--] = str[i];
			}
		}
    }
};

蚊子再小也是肉~
本站总访问量 本站访客数