力扣题目-汇总区间-字符串拼接sprintf

sprintf函数的使用

char** summaryRanges(int* nums, int numsSize, int* returnSize) {
    char ** res = malloc(numsSize * sizeof(char*));
    *returnSize = 0;
    int i = 0;
    int le = 0;
    while(le < numsSize){
        int start = le;
        while(le < numsSize-1 && nums[le+1] == nums[le] + 1){
            ++le;
        }
        int end = le;
        char * temp = malloc(25*sizeof(char));
        sprintf(temp,"%d",nums[start]);
        if(start < end){
            sprintf(temp + strlen(temp),"->");
            sprintf(temp + strlen(temp),"%d",nums[end]);
        }
        res[i] = temp;
        ++i;
        ++le;
    }
    *returnSize = i;
    return res;
}

在 C 语言中,sprintf 是一个用于格式化字符串输出的函数。它的原型如下:

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

该函数将格式化的数据写入到字符串 str 中,根据指定的格式字符串format进行格式化。它的用法类似于printf函数,但不会将结果输出到标准输出流,而是将结果写入到指定的字符串中。

sprintf 函数接受一个格式字符串作为参数,格式字符串中可以包含普通字符和格式控制符。格式控制符用于指定输出的数据类型和格式,例如 %d 表示输出整数,%f 表示输出浮点数,%s 表示输出字符串等等。通过在格式字符串中使用不同的格式控制符及其参数,可以将不同类型的数据格式化为字符串。

下面是一个简单的例子,演示如何使用 sprintf 函数将整数和浮点数格式化为字符串:

#include <stdio.h>

int main() {
    char str[100];
    int num = 42;
    float pi = 3.1415;

    sprintf(str, "The number is %d and the value of pi is %f", num, pi);

    printf("%s\n", str);

    return 0;
}

在这个例子中,sprintf函数将整数 num 和浮点数pi格式化为字符串,并将结果存储在 str 中。然后,使用 printf 函数将str 输出到标准输出流中。

输出结果为:

The number is 42 and the value of pi is 3.141500

需要注意的是,在使用 sprintf 函数时,要确保目标字符串 str 有足够的空间来存储格式化后的结果,以避免缓冲区溢出问题。

posted on 2024-05-29 13:25  王大海儿  阅读(23)  评论(0)    收藏  举报