C中字符结尾‘\0’的作用
2016-03-14 18:39
344 查看
这几天看到有讲解Strcat函数原型的,在里面发现一个极其有趣的用法
中间直接用*dst进行判断没有发生C++中的越界的行为。
编译器‘\0’默认为假,从而跳出判断。 这一点简直比指针省事多了!
#include <stdio.h> #include <assert.h> #include <stdlib.h> char *strca(char *dst, const char * src) { char *dst_t; dst_t = (char *)malloc(sizeof(dst) + sizeof(src)); char *start = dst_t; assert(dst && src); while(*dst_t = *dst) //是不会进行越界的,默认‘\0’类似“0”,然后跳出 { dst_t++; dst++; } while(*dst_t = *src) { dst_t++; src++; } *dst_t = '\0'; return start; } int main() { char *dst = {"wo ai "}; char *src = {"wo de guo jia !"}; printf("%s\n",strca(dst,src)); return 0; }
中间直接用*dst进行判断没有发生C++中的越界的行为。
编译器‘\0’默认为假,从而跳出判断。 这一点简直比指针省事多了!
相关文章推荐
- flashbuilder发布release版本
- BASE64原理
- NSBundle
- Youku iOS笔试题
- 跨服务器上传文件
- 如何点击一个图标进入一个网页
- 苹果系统里面部署ASP.NET
- Android 开发过程中需要注意的细节(一)
- 将多个txt文件合并成一个
- 插入排序
- 多国语言文档识别 ABBYY FineReader Corporate v12.0.101.388.7z 绿色破解版
- 自定义特性验证数据
- zookeeper集群搭建
- LeetCode332. Reconstruct Itinerary
- latex 基本用法(四)
- PHP 批量生成静态文件目录代码
- 编程规范的一些小事
- js判断浏览器类型
- 带分数问题
- python学习笔记(2)-IO编程