天天看點

替換空格 C++解法

替換空格

題目描述:

請實作一個函數,将一個字元串中的每個空格替換成“%20”。例如,當字元串為We Are Happy.則經過替換之後的字元串為We%20Are%20Happy。

void replaceSpace(char* str, int length)
{
	int count = 0;
	for (int i = 0; i < length; i++) if (str[i] == ' ') count++;
	for (int i = length - 1; i >= 0; i--)
	{
		if (str[i] != ' ') str[i + 2 * count] = str[i];
		else
		{
			str[i + 2 * count] = '0';
			str[i + 2 * count - 1] = '2';
			str[i + 2 * count - 2] = '%';
			count--;
		}
	}
}
           

思路:首先周遊字元串得到空格的個數,之後進行判斷,如果為非空格,則根據空格的個數向後移動相應的位置,如果為空格則把要添加的子字元串填進去,這裡注意count的自減.

繼續閱讀