strcpy和strncpy区别 memcpy和strcpy的区别

第一种情况:

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]=‘‘      //和上一步组合,得到正确的结果!

strncpy(name,p,sizeof(name));        //name改变为"how are you ?      "      ====>正确!

第三种情况:

char* p="how are you ?";

char name[10];

strcpy(name,p);      //name改变为"how are yo"     ====>无结束符‘‘,错误!

name[sizeof(name)-1]=‘‘      //和上一步组合,弥补结果。但要注意,字符传递错误!

strncpy(name,p,sizeof(name));      //和单纯的一步strcpy结果一样!

 

总结:strcpy

如果源长>目标长,则将源长中等于目标长的字符拷贝到目标字符串

如果源长<目标长,则源长全部拷贝到目标字符串,不包括‘‘

strncpy

如果目标长>指定长>源长,则将源长全部拷贝到目标长,自动加上‘‘

如果指定长<源长,则将源长中按指定长度拷贝到目标字符串,不包括‘‘

如果指定长>目标长,error happen!

 

 

 

/***************************************************************************************************

strcpy和strncpy区别 memcpy和strcpy的区别
东去东来总结:

strcpy(),以源串中的‘‘为拷贝结束标志,直到遇到该NULL为止,然后将NULL拷贝上.

strncpy()以第三个参数N为拷贝结束标志,如果source的长度小于N,则剩余的字符全部用NULL填充.

              如果source的长度大于N,则从source中截取前N个字符,拷贝过去.

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/54531.html

更多阅读

微波炉和电烤箱的使用区别 微波炉 烤箱 区别

电烤箱和微波炉的区别?有什么不一样的别?在众多厨房家电中,微波炉与烤箱无论是外形还是功能都非常接近,这也使得消费者在选购时产生疑惑:究竟是选微波炉还是选烤箱好呢?而此次小编要给大家介绍的正是这两者的区别。电烤箱和微波炉的区

告诉您高丽参和西洋参的区别方法 高丽参 西洋参 人参

许多消费者都在问高丽参和西洋参的区别。西洋参又称广东人参、花旗参。高丽参和西洋参的区别主要是品种和药用功效的不同,但这两种参都统属人参科。高丽参和西洋参的区别方法高丽参,又叫做韩国红参,是属于热性的中药,大补气血的上品

哈士奇和阿拉斯加的区别 狗狗智商排名

哈士奇和阿拉斯加的区别——简介有一种狗狗和哈士奇长得很像,毛要比哈士奇长了许多。不要惊讶,它叫“阿拉斯加”。原产美国的阿拉斯加州,为什么它长得那么像哈士奇,而且都是雪橇犬呢?接下来,就让我们一起揭开它们神秘的面纱!哈士奇和阿拉

文旦和柚子的区别 姑娘果的功效与作用

文旦和柚子的区别——简介文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——工具/原料文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——方法/步骤文旦和柚子的区别 1、文旦 名称:文旦 产地:浙江台州玉环 别名

声明:《strcpy和strncpy区别 memcpy和strcpy的区别》为网友柠檬橘分享!如侵犯到您的合法权益请联系我们删除