将sprintf执行后输出的结果保存进字符串
时间: 2024-10-18 12:18:25 浏览: 18
在C语言中,如果你想把`sprintf`执行后的结果保存到一个字符串里,可以直接将它赋值给另一个已经分配好内存的字符数组。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input_format[] = "The value is %d";
int number = 42;
char output_buffer[50]; // 假设最大输出长度不超过49个字符加上终止符'\0'
// 使用sprintf填充output_buffer
size_t len = snprintf(output_buffer, sizeof(output_buffer), input_format, number);
// 添加null终止符,防止字符串溢出
if (len >= sizeof(output_buffer)) {
printf("Error: Output string too long.\n");
} else {
output_buffer[len] = '\0'; // Add null terminator
printf("Formatted string: %s\n", output_buffer);
}
return 0;
}
```
在这里,`snprintf`函数用于指定输出字符串的最大长度,避免溢出。如果`sprintf`产生的内容小于等于指定的空间,`snprintf`会在结束位置自动添加null终止符`\0`。
阅读全文