算法将一个字符串的空格用%20来代替

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法将一个字符串的空格用%20来代替相关的知识,希望对你有一定的参考价值。

题目:给定一个字符串,将字符串里的所有空格替换成%20。

注意:空格替换成%20,是将1个字符变成3个字符,注意指针的移动个数。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int length(char *p)
{
	int blank = 0;
	for(;(*p)!=‘\0‘;p++)
		for(;(*p)==‘ ‘;p++)
			blank++;
	return blank ; 

}


int main()
{  
	char *p="we are happy";
 	int nu=strlen(p)+2*length(p)+1;               //替换之后所需空间大小
	char *b = malloc(sizeof(char)*nu);	      //分配空间
	char *a=b;
	while((*p)!=‘\0‘){                            //遍历原字符串
		for(;(*p)!=‘ ‘&&(*p)!=‘\0‘;b++,p++)   //不是空格和结束符时,直接赋值
			strcpy(b,p);
		if(*p==‘\0‘)                          //字符串结束,退出循环
			break;
		else{                                  //碰到原字符串中的空格时,赋值%20
			p++;
			strcpy(b,"%20");
			b+=3;
		}
	}
	*b=‘\0‘;
	printf("s=%s\n",a);
	free(a);                                       //释放malloc分配的空间
	return 0;
}


本文出自 “凌峰2019” 博客,请务必保留此出处http://lingfeng2019.blog.51cto.com/12741667/1910070

以上是关于算法将一个字符串的空格用%20来代替的主要内容,如果未能解决你的问题,请参考以下文章

多个空格用一个空格代替

经典算法题-基础-替换字符串中的空格

1078. 字符串压缩与解压 (20)

hbuilderx空格字符的代码

替换空格算法分析

替换空格算法分析