4-03:字符替换

问题:字符替换

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

input:”we are happy”

output:”we%20are%20happy”


void replacespace(char* istring,int length)
{
	if (istring == NULL || length < 0)
		return;
	int spacenumber = 0;
	for (int i = 0; i < length; i++)
	{
		if (*(istring + i) == ' ')
			spacenumber++;
	}
	int resultlength = length + spacenumber * 2;
	char* result = new char[resultlength];
	int spaceindex = 0;
	for (int i = 0; i < length; i++)
	{
		int index = resultlength - 1 - i - 2 * spaceindex;
		if (*(istring + length - 1 - i) == ' ')
		{
			result[index-2] = '%';
			result[index-1] = '2';
			result[index] = '0';
			spaceindex++;
		}
		else
		{
			result[index] = *(istring + length - 1 - i);
		}
	}
}

Category technology