函数
<cstdio>

sprintf

int sprintf ( char * str, const char * format, ... );
将格式化的数据写入字符串
使用与printf相同的格式,将文本组合成一个字符串,但不是打印出来,而是将内容存储在str指向的缓冲区中,作为C字符串

缓冲区的大小应该足够容纳整个结果字符串(请参阅snprintf以获得更安全版本)。

内容后面会自动添加一个终止的空字符。

format 参数之后,函数期望至少有 format 所需的那么多额外参数。

参数

str
指向存储结果 C 字符串的缓冲区的指针。
缓冲区应足够大以容纳生成的字符串。
format
一个 C 字符串,包含一个格式化字符串,其遵循与 printf 中的 format 相同的规范(详见 printf)。
... (附加参数)
根据格式字符串,函数可能需要一系列附加参数,每个参数包含一个用于替换格式字符串中格式说明符的值(或者,对于n).
,是指向存储位置的指针)。这些参数的数量应至少与格式说明符中指定的值的数量一样多。额外的参数会被函数忽略。

返回值

成功时,返回写入的字符总数。此计数不包括在字符串末尾自动追加的空字符。
失败时,返回负数。

示例

1
2
3
4
5
6
7
8
9
10
11
/* sprintf example */
#include <stdio.h>

int main ()
{
  char buffer [50];
  int n, a=5, b=3;
  n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
  printf ("[%s] is a string %d chars long\n",buffer,n);
  return 0;
}

输出
[5 plus 3 is 8] is a string 13 chars long


另见