strncpy函数与memcpy函数

函数名:   strncpy 
功     能:   串拷贝 
用     法:   char   *strncpy(char   *destin,   char   *source,   int   maxlen); 
memcpy 
功     能:   从源source中拷贝n个字节到目标destin中 

一个考字符串,一个拷贝内存内容

strncpy   
    原型:extern   char   *strncpy(char   *dest,   char   *src,   int   n); 
                
    用法:#include   <string.h> 
    
    功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 
    
    说明: 
                如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。 
                如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。 
                src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 
                返回指向dest的指针。 
    
    举例: 
            //   strncpy.c 
            
            #include   <syslib.h> 
            #include   <string.h> 
            main() 
            { 
                char   *s= "Golden   Global   View "; 
                char   *d= "Hello,   GGV   Programmers "; 
                char   *p=strdup(s); 
                
                clrscr(); 
                textmode(0x00);     //   enable   6   lines   mode 
                                
                strncpy(d,s,strlen(s)); 
                printf( "%s\n ",d); 
                
                strncpy(p,s,strlen(d)); 
                printf( "%s ",p); 
                
                getchar(); 
                return   0; 
            } 
------------------------------ 
memcpy   
    原型:extern   void   *memcpy(void   *dest,   void   *src,   unsigned   int   count); 
    用法:#include   <string.h> 
    
    功能:由src所指内存区域复制count个字节到dest所指内存区域。 
    
    说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。 
    
    举例: 
            //   memcpy.c 
            
            #include   <syslib.h> 
            #include   <string.h> 
            main() 
            { 
                char   *s= "Golden   Global   View "; 
                char   d[20]; 
                
                clrscr(); 
                
                memcpy(d,s,strlen(s)); 
                d[strlen(s)]=0; 
                printf( "%s ",d); 
                getchar(); 
                return   0; 
            } 
  strcpy   
    原型:extern   char   *strcpy(char   *dest,char   *src); 
                
    用法:#include   <string.h> 
    
    功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 
    
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 
                返回指向dest的指针。 
    
    举例: 
            //   strcpy.c 
            
            #include   <syslib.h> 
            #include   <string.h> 
            main() 
            { 
                char   *s= "Golden   Global   View "; 
                char   d[20]; 
                
                clrscr(); 
                
                strcpy(d,s); 
                printf( "%s ",d); 
                getchar(); 
                return   0; 
            } 
----------------------------------------------- 
strcpy只是复制字符串,但不限制复制的数量。很容易造成缓冲溢出。 
strncpy要安全一些。 
memcpy也可以用来在内存中复制数据,由于字符串是以零结尾的,所以对于在数据中包含零的数据只能用memcpy。 
性能上它们不一定有多大差别。 
  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值