字符串替换

  • Post author:
  • Post category:其他




1.一个换一个

函数将字符串中的字符 ‘* ’ 移到字符串的前部分,前面的非 ’ * ’ 字符后移,但不能改变非 ‘* ’ 字符的先后顺序,函数返回串中非 ’ * ’ 字符的数量。(要求尽可能的占用少的时间和辅助空间)。

例如:原始串为 au ** toc ** h**i * ps,处理后为*******autochips ,函数返回9.

void OneReplace(char *arr)
{
	int len = 0;//字符串的长度
	while(arr[len] != '\0')
	{
		len++;
	}
	int i = len;//后面的*
	int j = len;//前面查看是否是数字
	while(arr[j] != '*')
	{
		j--;
		i--;
	}

	while(j >= 0)
	{
		if(arr[j] == '*')
		{
			j--;
		}else
		{

			arr[i] = arr[j];
			arr[j] = '*';
			i--;
		}
	}
}

void Move(char *str)
{
	int i = strlen(str);
	int j = i;
	for(; i > 0; i--)
	{
		if(str[i] != '*')
		{
			str[j] = str[i];
			j--;
		}
	}
	while(j >= 0)
	{
		str[j--] = '*';
	}
}



2.一个换多个(插入)

实现一个函数,把字符串中的每个空格替



版权声明:本文为weixin_42476945原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。