strcpy和strncpy sprintf和_snprintf的区别

Strcpy strncpy  sprintf _snprintf,snprintf的区别

Strncpy _snprintf ,snprintf是边界安全的函数

1.  Strcpy strncpy

char *strncpy(char *strDest,const char *strSource,size_t count );

//count = strdest的长度 – 1.最多从srcdest拷贝maxlen个字符,截尾dest 或用空字符填充dest.strncpystrcpy安全。因为他需要指定你要拷贝的长度。不会溢出

 
  

char* p="how are you ?";

char name[20]="ABCDEFGHIJKLMNOPQRS";

strcpy(name,p);   //name改变为"how are you ? OPQRS "     ====>错误!

Memset(name,0,sizeof(name))
strncpy(name,p,sizeof(name))    //name
改变为"how are you ?      "       ====>正确!

 

2. sprintf _snprintf,snprintf

 
  
 
  
 
  
 
  
 
  

);// Count = buffer的长度 – 1. 最多从formatbuffer拷贝count个字符,截尾dest 或用空字符填充dest. _snprintfsprintf安全。因为他需要指定你要拷贝的长度。不会溢出

注:_snprintf 用在windows 平台下,sprintf用在linux 平台下。

你可能感兴趣的:(strcpy和strncpy sprintf和_snprintf的区别)