• 1.摘要
  • 2.基本信息
  • 3.sprintf函数语法
  • 3.1.函数声明
  • 3.2.参数列表
  • 3.3.功能
  • 3.4.返回值
  • 4.说明及应用
  • 4.1.例子
  • 4.2.format标签属性
  • 4.3.说明
  • 5.常见问题
  • 6.参考资料

sprintf

sprintf指的是字符串格式化命令,函数声明为int sprintf(char*buffer,const char*format,[argument]… )1

sprintf的主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到string所指向的字符串。sprintf是个变参函数。使用sprintf对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用snprintf函数,该函数可对写入字符数做出限制1

基本信息

  • 中文名

    字符串格式输出

  • 外文名

    sprintf

  • 特点

    变参函数

  • 功能

    把格式化的数据写入某个字符串中

  • 头文件

    stdio.h

  • 原型

    int sprintf

  • 返回值

    字符串长度

sprintf函数语法

函数声明

int sprintf(char *string, char *format [,argument,...]);

参数列表

  • string-- 这是指向一个字符数组的指针,该数组存储了 C 字符串。

  • format-- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是%[flags][width][.precision][length]specifier

  • [argument]...:根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

功能

把格式化的数据写入某个字符串缓冲区。

返回值

如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。

sprintf 返回以format为格式argument为内容组成的结果被写入string的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的string后,函数sprintf 返回52

说明及应用

例子

输出结果:

Output:

String: computer

Character: l

Integer: 35

Real: 1.732053

character count = 79