用字符串和 int 变量初始化 char 数组 (c)

时间:2021-01-11 10:00:34

标签: arrays c initialization

我想像这样初始化一个字符数组:

char msg[] = "something 12";

到目前为止,这有效,但为了让我的函数更灵活,我想使用整数变量而不是固定的“12”。

所以我想使用类似的东西:

int value = 12;
char msg[] = ("something %d", value);

但这似乎行不通。有没有聪明的方法使用灵活的初始化?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用 snprintf()

int value = 12;
const char* format = "something %d";
int len = snprintf(NULL, 0, format, value);
char msg[len + 1]; /* Variable-Length Array (C99) */
snprintf(msg, len + 1, format, value);

答案 1 :(得分:0)

您可以使用 sprintf 来组成您的字符串:

char result[100];
int value = 12;

sprintf(result, "Something %d", value);

printf("%s\n", result);
相关问题