Strcpy和Strncpy的区别
来源:互联网 发布:淘宝买家给差评怎么办 编辑:程序博客网 时间:2024/05/21 07:54
第一种情况:
char* p="how are you ?";
char name[20]="ABCDEFGHIJKLMNOPQRS";
strcpy(name,p); //name改变为"how are you ? OPQRS " ====>错误!
strncpy(name,p,sizeof(name)) //name改变为"how are you ? " ====>正确!
第二种情况:
char* p="how are you ?";
char name[20];
strcpy(name,p); //name改变为"how are you ? 未知字符 " ====>错误!
name[sizeof(name)-1]='/0' //和上一步组合,得到正确的结果!
strncpy(name,p,sizeof(name)); //name改变为"how are you ? " ====>正确!
第三种情况:
char* p="how are you ?";
char name[10];
strcpy(name,p); //name改变为"how are yo" ====>无结束符'/0',错误!
name[sizeof(name)-1]='/0' //和上一步组合,弥补结果。但要注意,字符传递错误!
strncpy(name,p,sizeof(name)); //和单纯的一步strcpy结果一样!
================================================
总结:strcpy
如果源长>目标长,则将源长中等于目标长的字符拷贝到目标字符串
如果源长<目标长,则源长全部拷贝到目标字符串,不包括'/0'
strncpy
如果目标长>指定长>源长,则将源长全部拷贝到目标长,自动加上'/0'
如果指定长<源长,则将源长中按指定长度拷贝到目标字符串,不包括'/0'
如果指定长>目标长,error happen!
- Strcpy和Strncpy的区别
- Strcpy和Strncpy的区别-
- Strcpy和Strncpy的区别
- Strcpy和Strncpy的区别
- strcpy 和 strncpy的区别
- strcpy和strncpy的区别
- strcpy()和strncpy()的区别
- strcpy和strncpy的区别
- Strcpy和Strncpy的区别
- strcpy和strncpy的区别
- strcpy和strncpy的区别
- strcpy和strncpy区别
- strcpy和strncpy区别
- strcpy和strncpy区别
- strcpy和strncpy区别
- strcpy和strncpy区别
- strcpy和strncpy区别
- strcpy 和 strncpy的区别和实现
- c#转义符
- java解惑
- Runtime类的使用
- JavaScript 学习 - 提高篇
- Hibernate对boolean判断方式在不同数据库(Postgres和Sql Server2000)下的表现
- Strcpy和Strncpy的区别
- C++运算符重载探讨
- 微软的代码调试准则
- Page Controller (页面控制器)和Front Controller(前端控制器)
- Eclispe里怎样自定义安装Ruby插件
- 如何才算掌握Java
- ASP.NET之5种全局变量!页面间传值方法!
- 2个月收入5万元的垃圾站是如何炼成的
- ASP.Net项目中全局变量使用的方式