这是一个新手问题。为了创建格式化的 C 字符串,我使用printf
, like:
int n = 10;
printf("My number is %i", 10);
但是,怎么样:
int n = 10
char *msg = "My number is %i", 10;
printf(msg);
如何将生成的格式化字符串存储在变量中?我想要“我的号码是 10”。
你想使用snprintf() http://linux.die.net/man/3/snprintf:
int n = 10;
char bla[32]; // Use an array which is large enough
snprintf(bla, sizeof(bla), "My number is %i", n);
Do not use sprintf()
;它类似于snprintf
但不执行任何缓冲区大小检查,因此它被认为是一个安全漏洞 - 当然,您可能总是分配足够的内存,但您可能在某些时候忘记它,从而打开一个巨大的安全漏洞。
如果你想让函数为你分配内存,你可以使用asprintf() http://linux.die.net/man/3/asprintf反而:
int n = 10;
char *bla;
asprintf(&bla, "My number is %i", n);
// do something with bla
free(bla); // release the memory allocated by asprintf.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)