函式
<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


另見