sprintf

2017-08-20  本文已影响0人  AllenWang0217
#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;
}
上一篇 下一篇

猜你喜欢

热点阅读