面试题4:替换空格

题目:实现一个函数,把字符串中的每个空格都替换成20%;

例如:输入:we are happy,则输出:we%20are%20happy

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void ReplaceBlank(char string[],int length)
{
	if(string==nullptr||length<=0)
	return ;
	int orignalLength=0;//原数组的长度初始化为0
	int numberOfBlank=0;//原数组空格的数量初始化为0
	int i=0;
	{
		while(string[i]!='\0')
		{
			++orignalLength;//求得原数组的长度
			if(string[i]==' ')
			++numberOfBlank;//求得原数组中空格的数量
		    ++i;
		}
		int newLength=orignalLength+numberOfBlank*2;//替换后数组的长度
		if(newLength>length)
		return ;
		int indexOfOriginal=orignalLength;//原数组的最后一个下标即是原数组的长度,数组从0开始,也减少一个\0
		int indexOfNew=newLength;//新数组的最后一个下标即是新数组的长度
		while(indexOfOriginal>=0&&indexOfNew>indexOfOriginal)
		{
			if(string[indexOfOriginal]==' ')//判断若原数组为空格,则将三个字符替换一个,从后往前替换
			{
				string[indexOfNew--]='0';
				string[indexOfNew--]='2';
				string[indexOfNew--]='%';
			}
			else//若不是空格,则将旧的赋给新的
			{
				string[indexOfNew--]=string[indexOfOriginal];
			}
			--indexOfOriginal;//旧指针从后往前移动
		}
     }
	printf("%s\n",string) ;
}

int main()
{
	char string[20]="we are happy";
	ReplaceBlank(string,20);
	return 0;
}

运行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41431406/article/details/84146184
今日推荐