snprintf简介

转载 2012年03月22日 14:20:43
转载自:
语法:int snprintf(char *str, size_t size, const char *format, ...);
  snprintf用于将可变个参数(...)按照format格式化成字符串,然后将其复制到str中
  (1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');
  (2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0')
  函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。 
示例1:
  #include <stdio.h> //snprintf()
  #include <string.h> //strlen()
  int main()
  {
  char toname[30];
  char *name = "yangtaiping";
  printf("strlen(name) = %d\n", strlen(name));
  snprintf(toname, strlen(name)+strlen("姓名:")+1, "姓名:%s", name);
  printf("toname = %s\n", toname);
  printf("strlen(name) = %d\n", strlen(name));
  }
  strcpy(), sprintf() ,strcat() 存在安全隐患(缓冲区溢出), 其对应的安全版为:strncpy() ,snprintf(), strncat() 。 
  snprintf(s, 100, "%.*S", 3, "abcd");执行后s的值为abc 。%.*s 表示有两项, 第一项指定了长度,第二项则是%s的内容,所以取前三位
  类似的函数还有:
  #include <stdio.h>
  int printf(const char *format, ...); //格式化输出到标准输出设备
  int fprintf(FILE *stream,const char *format, ...); //格式化输出到文件流
  int sprintf(char *str,const char *format, ...); //格式化的输出字符串输出到str指向的地址空间

snprintf与printf

int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,...
  • u011349664
  • u011349664
  • 2013年10月06日 23:38
  • 1419

VC6.0 unresolved external symbol _snprintf

snprintf 直到 C99 才进入标准库,VC6 中没有不值得惊讶
  • zcc1414
  • zcc1414
  • 2014年06月24日 09:45
  • 1309

windows 下使用 snprintf

#include #include #ifdef _MSC_VER #define snprintf c99_snprintf inline int c99_vsnprintf(char* s...
  • Qyee16
  • Qyee16
  • 2014年09月13日 16:26
  • 2327

C语言snprintf函数

int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...); 函数说明:最多从源串中拷贝n-1个字符...
  • ccccdddxxx
  • ccccdddxxx
  • 2012年03月19日 18:42
  • 13888

Linux下的snprintf

http://www.cplusplus.com/reference/cstdio/snprintf/
  • lantianjialiang
  • lantianjialiang
  • 2014年04月16日 12:59
  • 1154

snprintf与_snprintf的区别

常见snprintf与_snprintf的区别是_snprintf不会末尾置0就不说了,能搜到很多相关的内容。     先从遇到的问题说起:             我们的服务器是跨平台的,有个宏...
  • lordmr
  • lordmr
  • 2016年07月04日 14:22
  • 2712

snprintf()函数探讨

printf()/sprintf()/snprintf()区别  先贴上其函数原型 printf( const char *format, ...)    格式化输出字符串,默认输出到终端----...
  • czxyhll
  • czxyhll
  • 2012年09月06日 12:53
  • 12384

snprintf函数的常见功能

以前将各种整型数浮点数转换为字符串时都要借助str
  • u012954083
  • u012954083
  • 2014年04月22日 20:04
  • 3845

snprintf()函数使用方法

众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf. 自从snprintf代替了sprintf,相信大家对snprintf的使用都不...
  • sky1203850702
  • sky1203850702
  • 2016年10月10日 16:18
  • 9116

C中的 snprintf()函数

函数原型:int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...);
  • u013763860
  • u013763860
  • 2014年11月06日 11:07
  • 4216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:snprintf简介
举报原因:
原因补充:

(最多只允许输入30个字)