算法将一个字符串的空格用%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来代替的主要内容,如果未能解决你的问题,请参考以下文章