我想像这样初始化一个字符数组:
char msg[] = "something 12";
到目前为止,这有效,但为了让我的函数更灵活,我想使用整数变量而不是固定的“12”。
所以我想使用类似的东西:
int value = 12;
char msg[] = ("something %d", value);
但这似乎行不通。有没有聪明的方法使用灵活的初始化?
感谢您的帮助。
答案 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);