剑指offer刷题(2)

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
如果从前往后进行遍历,那么每次找到一个空格,则需要添加两个字节来进行替换,我们采用先对字符串进行遍历,查找字符串中的空格的个数,然后对新的字符串进行长度的计算,然后从后往前进行替换,每遇到一个空字符,然后进行替换。
class Solution 
{
public:
	void replaceSpace(char *str,int length) 
	{
		if(str==NULL||length<0)
		{
			return ;
		}
		int oldnumber=0;
		int numbers=0;
		int newnumber=0;
		int i=0;
		int j=0;
		int oldlength;
		int newlength;
		while(str[i]!='\0')
		{
			oldnumber++;
			if(str[i]==' ')
			{
				numbers++;

			}
			i++;
			
		}
		newnumber=oldnumber+numbers*2;
		if(newnumber>length)
			return ;
		oldlength=oldnumber;
		newlength=newnumber;
		while(oldlength>=0&&oldlength


你可能感兴趣的:(刷题)