[英]char array initialize with string and int variable (c)
i would like to initialize a char array like this:我想像这样初始化一个char数组:
char msg[] = "something 12";
This works so far, but to hold my function more flexibel i would like to use a integer varible instead of the fixed "12".到目前为止,这有效,但是为了让我的 function 更加灵活,我想使用 integer 变量而不是固定的“12”。
So i would like to use something like:所以我想使用类似的东西:
int value = 12;
char msg[] = ("something %d", value);
But this seems not to work.但这似乎不起作用。 Is there a smart way use a flexible initialization?有没有使用灵活初始化的聪明方法?
Thanks for your help.谢谢你的帮助。
You can use snprintf()
.您可以使用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);
You can use sprintf
to make up your string:您可以使用sprintf
来组成您的字符串:
char result[100];
int value = 12;
sprintf(result, "Something %d", value);
printf("%s\n", result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.