c++strcpy 和 是strncpy区别

如题所述

Strcpy和Strncpy的区别
第一种情况:  
char* p="how are you ?";  char name[20]="ABCDEFGHIJKLMNOPQRS";  strcpy(name,p); //name改变为"how are you ? "====>正确!  strncpy(name,p, sizeof(name));//name改变为"how are you ?" =====>正确!后续的字符将置为NULL  
第二种情况:  
char* p="how are you ?";  
char name[10];  
strcpy(name,p); //目标串长度小于源串,错误!  
name[sizeof(name)-1]='\0'; //和上一步组合,弥补结果,但是这种做法并不可取,因为上一步出错处理方式并不确定  
strncpy(name,p,sizeof(name)); //源串长度大于指定拷贝的长度sizeof(name),注意在这种情况下不会自动在目标串后面加'\0'  name[sizeof(name)-1]='\0'; //和上一步组合,弥补结果
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-08
char *strncpy(
char *strDest,
const char *strSource,
size_t count
);

char *strcpy(
char *strDestination,
const char *strSource
);

两者功能基本一样。不同之处在于,strncpy多一个参数 count,即复制的字节数追问

vs 里strcat为何老是要换成strcat_s呢

追答

前者已经过时了,

其实,你问的这几个函数都过时了,都要加上"_s"

本回答被提问者和网友采纳
第2个回答  2012-10-02
copy 有罪 自己看连接 这还算靠谱

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网