2025年4月1日 星期二 乙巳(蛇)年 正月初二 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有什么不同?

时间:12-30来源:作者:点击数:84

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[15];
  • } CUSTREC;
  • 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 destination string 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") ;
  • printf("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 to the dest_cust structure. Notice that, just as with strcpy(), the destination comes first. */
  • memcpy(&dest_cust, &src_cust, sizeof(CUSTREC));
  • printf("Done! I just copied customer number # %d (%s %s)." ,dest_cust. id, dest_cust. first_name, dest_cust. last_name) ;
  • }

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门