C 函数sprintf()


声明

int sprintf(char *str, const char *format, ...)

参数

str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
format -- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化

返回值

如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。

Example

#include <iostream>

static void test()
{
    // 1 格式化字符串
    char buffer[1024] = { 0 };
    sprintf(buffer, "Hello %s", "XijinPing");
    printf("%s\n", buffer);

    // 2 拼接字符串
    const char *s1 = "Hello";
    const char *s2 = "World";
    memset(buffer, 0, 1024);
    sprintf(buffer, "%s %s", s1, s2);
    printf("%s\n", buffer);

    // 3 数字转成字符串
    int number = 666;
    memset(buffer, 0, 1024);
    sprintf(buffer, "双击%d\n", number);
    printf("%s\n", buffer);

    // 4
    char **p = (char **)malloc(sizeof(char *) * 5);
    for (int i = 0; i < 5; ++i) {
        p[i] = (char *)malloc(64);
        memset(p[i], 0, 64);
        sprintf(p[i], "name_%d", i);
    }
    // 打印字符串
    for (int i = 0; i < 5; ++i) {
        printf("%s\n", p[i]);
    }
    // 释放字符串
    for (int i = 0; i < 5; ++i) {
        if (NULL != p[i]) {
            free(p[i]);
            p[i] = NULL;
        }
    }
    if (NULL != p) {
        p = NULL;
    }
}

int main(int argc, const char *argv[])
{
    test();
}

附件: