0
点赞
收藏
分享

微信扫一扫

写一个函数,将字符串中空格替换为%20

千行 2022-04-26 阅读 134
c语言

例如:

  • 输入:We are happy
  • 输出:We%20are%20happy

思路:

  1. 数清字符串中空格数量,然后增加字符串长度
  2. 设置end1end2这两个字符串末尾角标,分别指向原字符串末尾和新字符串末尾
  3. 将原字符串由尾部开始复制到新字符串末尾,遇到空格则将其改为%20
  4. end1end2角标相同,循环结束

源代码:

#include <stdio.h>
#include <string.h>

void ReplaceSpace(char* str, int length)
{
	int count = 0;
	char* p = str;
	while (*p)
	{
		if (*p == ' ')
		{
			count++;
		}
		p++;
	}
	int newlen = length + count * 2;
	int end1 = length - 1;
	int end2 = newlen - 1;
	str[end2 + 1] = '\0';
	while (end1 != end2)
	{
		if (str[end1] != ' ')
		{
			str[end2--] = str[end1--];
		}
		else
		{
			str[end2--] = '0';
			str[end2--] = '2';
			str[end2--] = '%';
			end1--;
		}
	}
}

int main()
{
	char ch[50];
	gets(ch);
	int len = strlen(ch);
	ReplaceSpace(ch, len);
	printf("%s\n", ch);
	return 0;
}
举报

相关推荐

0 条评论