sprintf

作者: AllenWang0217 | 来源:发表于2017-08-20 21:02 被阅读0次
    #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;
    }
    

    相关文章

      网友评论

          本文标题:sprintf

          本文链接:https://www.haomeiwen.com/subject/tbfqdxtx.html