字符串处理算法题 -> 替换空格

时间:2022-07-23
本文章向大家介绍字符串处理算法题 -> 替换空格,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目

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

题解

char* replaceSpace(char* string)
{
	int space_cnt = 0;
	for (int i=0;i<strlen(string);i++)
	{
		if (*(string+i) == ' ') space_cnt++;
	}
	char *p_head = NULL, *p_end = NULL;
	p_head = &string[strlen(string)];
	p_end = &string[strlen(string) + space_cnt*2];
	for (int i = 0; i < strlen(string); i++)
	{
		if (p_end == p_head)
		{
			return string;
		}
		if (*p_head == ' ')
		{
			*p_end = '0';
			*(--p_end) = '2';
			*(--p_end) = '%';
			p_head--;
			p_end--;
		}
		else
		{
			*(p_end--) = *(p_head--);
		}
	}
	return NULL;
}

结果