C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有啥不同?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有啥不同?相关的知识,希望对你有一定的参考价值。
参考技术A strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝。memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都以null字符结束,所以你要为memcpy()函数指定要拷贝的字节数。在拷贝字符串时,通常都使用strcpy()函数;在拷贝其它数据(例如结构)时,通常都使用memcpy()函数。以下是一个使用strcpy()函数和memcpy()函数的例子:#include <stdio. h>#include <string. h>typedef struct cust-str int id ;char last_name [20] ;char first_name[l5]; CUSTREC;void main (void);void main (void)char * src_string = "This is the source string" ;char dest_string[50];CUSTREC src_cust;CUSTREC dest_cust;printf("Hello! I'm going to copy src_string into dest_string!\n");/ * Copy src_ string into dest-string. Notice that the destinationstring is the first argument. Notice also that the strcpy()function returns a pointer to the destination string. * /printf("Done! dest_string is: %s\n" ,strcpy(dest_string, src_string)) ;printf("Encore! Let's copy one CUSTREC to another. \n") ;prinft("I'll copy src_cust into dest_cust. \n");/ * First, intialize the src_cust data members. * /src_cust. id = 1 ;strcpy(src_cust. last_name, "Strahan");strcpy(src_cust. first_name, "Troy");/ * Now, Use the memcpy() function to copy the src-cust structure tothe dest_cust structure. Notice that, just as with strcpy(), thedestination comes first. * /memcpy(&dest_cust, &src_cust, sizeof(CUSTREC));本回答被提问者采纳以上是关于C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章