#include <stdio.h>
int sprintf(char * str,const char * format,...);
将格式化数据写入字符串
与printf类似,使用指定的format,在对应的位置,用相同的text替换掉,以组成一个字符串。与printf不同,它并不会打印在控制台,而是存储在str指向的,C string的形式buffer中。
buffer的大小应足够大,以包含整个生成的字符串。(使用snprintf较为安全)
字符串后自动附加终止空字符。
在format参数后,附加的参数应不小于需要指定format的个数。
参数
str
指向 存储生成的C-string缓冲区 的指针
缓冲区应大于生成的字符串
format
与printf类似
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
...
根据不同的format
,函数可能需要一系列附加参数,每个参数均包含一个可以替换对应位置的format
的值。
附加参数的个数应大于format
参数指定format
的个数。附加参数将会被函数忽略。
返回值
如果成功,返回值为写入buffer的总字符串的长度,不包含结尾自动附加的空字符。
如果失败,将会返回一个负数
例子
/* 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;
}