力扣题目-汇总区间-字符串拼接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 有足够的空间来存储格式化后的结果,以避免缓冲区溢出问题。
浙公网安备 33010602011771号