我真的不知道谷歌如何搜索这个特定主题,所以我希望你们中的一个人可以帮助我。
基本上我有这段代码:
fp = fopen("ELSO.html", "w");
我还有一个名字变量:
char name[25] = {"JohnShepard"};
我想要的是调用fopen以使名称为JohnShepard.html(即变量的内容)。这样的事情甚至可能吗?
答案 0 :(得分:5)
作为strcat
的替代方案,您可以使用snprintf
:
char buffer[100];
char name[25] = "JohnShepard";
int i = snprintf(buffer, sizeof buffer, "%s.html", name);
// "i" should now contain the length of string in "buffer"
FILE *fp = fopen(buffer, "w");
// ... etc ...
此方法比strcat
更安全,因为它要求您提供输出缓冲区的大小。如果没有足够的空间,那么你不会最终超越缓冲区(这是危险的)。此外,它不会修改原始字符串,但这是否重要取决于您。