实现一个函数,把字符串中的每个空格替换成“%20”.例如:输入“We are happy.”,则输出“We%20are%20happy.”

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

void Replace(char str[], int lenth)
{
	if (NULL == str || 0 == lenth)
		return;
	int count = 0; //计空格数
	int len = 0; //计算str中包含多少个元素(有效长度)
	int i = 0;

	//数有多少个空格以及数组的元素个数
	while (str [i] != '\0') //这里要注意计数停止条件
	{
		if (str [i] == ' ')
		{
			count++;
		}
		len++;
		i++;
	}

	int len1 = len;
	int len2 = len + count * 2;//修改后的数组长度
	//从后往前遍历数组,遇到空格就往后挪动两格
	while (len1 >= 0 && len2 >= len1)
	{
		if (str [len1] == ' ')
		{
			//如果遇到空格,从后往前插入%20
			str [len2--] = '0';
			str [len2--] = '2';
			str [len2--] = '%';
		}
		else
		{
			str [len2--] = str [len1];
		}
		len1--;
	}
}

int main()
{
	//实现一个函数,把字符串中的每个空格替换成“ % 20”.
	//例如:输入“We are happy.”,则输出“We%20are%20happy.”
	char str [100] = {0};
	gets(str);
	int len = sizeof(str) / sizeof(str [0]);
	Replace(str, len);
	printf("%s\n", str);

	return 0;
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐