如题所述
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'; //åä¸ä¸æ¥ç»åï¼å¼¥è¡¥ç»æ
第ä¸ç§æ åµï¼ãã
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,即复制的字节数追问
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 有罪 自己看连接 这还算靠谱