字符串替换空格的两种方法
2016-07-20 17:34
316 查看
从"we are happy."---->"we%20are%20happy."
代码一:
代码二:
代码一:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void replace_black(char arr[],int sz) { int i=0; int len=0; for(i=0; i<sz; i++) { if(arr[i] == ' ')//统计字符串中的空格数 len+=2; } len+=sz; while(sz<len) { if(arr[sz] != ' ') { arr[len]=arr[sz]; sz--; len--; } else { arr[len--]='0'; arr[len--]='2'; arr[len--]='%'; sz--; } } } int main() { char arr[]="you are a pig."; int sz=sizeof(arr)/sizeof(arr[0])-1; replace_black(arr,sz); printf("%s\n",arr); system("pause"); return 0; }
代码二:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<malloc.h> char *replace_black(char *str,int sz,int count) { char *pa=(char *)malloc((sz+count*2)*sizeof(char));//动态开辟出一块空间 char *ret=pa; if(NULL == pa)//判断内存开辟是否成功 { printf("out of memory.\n"); exit(1); } assert(str); while(*str != '\0') { if(*str == ' ')// { *pa++='%'; *pa++='2'; *pa++='0'; str++; } else { *pa=*str; pa++; str++; } } *pa='\0'; return ret; } int main() { char arr[]="we are happy."; int sz=sizeof(arr)/sizeof(arr[0]); char *ret={0}; int i=0; int count=0; for(i=0; i<sz; i++) { if(arr[i] == ' ')//统计字符串中的空格数 count++; } ret=replace_black(arr,sz,count); printf("%s\n",ret); free(ret);//释放所开辟的空间 system("pause"); return 0; }
相关文章推荐
- Leetcode-longest-consecutive-sequence
- 字符串只保留开头跟最后一个字符
- spark core 1.6.0 源码分析10 Task的运行
- hdu1722 cake
- RabbitMQ(一) 入门 Helloworld
- 用来设置标签的流式布局简单设计
- JSON序列化与反序列化,读、写
- 带有泛型的类如何继承
- centos安装samba
- RecyclerView
- 超齐全的编程开发资源集
- .Net语言 APP开发平台Smobiler3.1版本新增了大量的控件
- ubuntu使用PHP访问Hadoop,利用WebHDFS
- CSS3 Gradient
- Android--打包工具,100个渠道包只需要10秒钟
- iOS实现二维码的彩色效果
- 双线性插值(Bilinear Interpolation)
- [jQuery EasyUI系列] 创建增删改查应用
- JAVA之J2EE学习路线
- spring的2种配置文件applicationContext.xml和xxx-servlet.xml