strncpy与snprintf 的用法比较
来源:互联网 发布:小学英语听力软件 编辑:程序博客网 时间:2024/06/05 14:21
作者: 字体:[增加 减小] 类型:转载 时间:2013-07-25 我要评论
以下是对strncpy与snprintf的具体用法以及区别进行了详细的分析介绍,需要的朋友可以过来参考下
strncpy的正确用法:
strncpy(dest, src, sizeof(dest));
dest[sizeof(dest)-1] = ‘\0';
snprintf的正确用法:
snprintf(dest, sizeof(dest), "%s", src);
strncpy的问题:
1.size一定要用sizeof(dest)或sizeof(dest)-1,不可误用sizeof(src).
2.手工填0. 务必要把dest的最后一个字节手工设置为0. 因为strncpy仅在src的长度小于dest时,对剩余的字节填0.
3.性能问题。当dest长度远大于src时,由于strncpy会对多余的每个字节填0,会有很大的性能损失。
4.返回值。strncpy返回dest,因而无法知道拷贝了多少个字节。
snprintf的问题:
1.不可省略第三个参数"%s",隐患是,如果src中包含%,会引发core。
2.性能问题。当src长度远大于dest时,由于snprintf要返回src的字节数,需要扫描src,会有很大的性能损失。
3.返回值。如果当前buf够用,返回实际写入的字符数;如果不够用,返回将要写入的字符数。换句话说,返回值就是传入的字符数目。
总结:
1.snprintf使用比strncpy简洁。
2.snprintf可以获取被拷贝的字节数。
3.二者都有性能问题。如果src远大于dest,用strncpy;如果dest远大于src,用snprintf。
阅读全文
0 0
- strncpy与snprintf 的用法比较
- strncpy与snprintf的正确用法
- strncpy&snprintf用法之比较
- strncpy&snprintf用法之比较
- strncpy,snprintf,strnlen的用法
- strncpy和snprintf的正确用法详解
- strncpy和snprintf的正确用法详解
- strncpy和snprintf的正确用法详解
- snprintf与strncpy的一点区别。。。
- strncpy与snprintf
- <摘自网上>strncpy和snprintf的正确用法详解
- snprintf函数用法及与sprintf比较
- [原创]snprintf与strncpy效率对比
- 字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较
- 字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较
- strncpy, strncat和snprintf的区别
- strncpy, strncat和snprintf的区别
- [待验证]strncpy和snprintf的效率
- Spring Boot Actuator 401无权限访问
- 微信第三方平台开发经验总结(五):接收授权方授权请求并保存授权方信息
- Integer的==判断问题
- 什么是区块链
- php中的$_REQUEST是什么意思
- strncpy与snprintf 的用法比较
- 记忆化搜索
- 1.1.7 if语句
- swiper在进行动态数据加载时的应用和处理
- Atom 如何去掉右侧竖线
- 欢迎使用CSDN-markdown编辑器
- LintCode_拓扑排序_DFS实现
- Power oj 2540 (FFT卷积)
- java 数组 、 for each循环, 数组的两种拷贝方法 ,Arrays.copyOf(),Arrays.toString[],匿名数组