如何在C

时间:2017-02-15 20:51:16

标签: c

我真的不知道谷歌如何搜索这个特定主题,所以我希望你们中的一个人可以帮助我。

基本上我有这段代码:

fp = fopen("ELSO.html", "w");

我还有一个名字变量:

char name[25] = {"JohnShepard"};

我想要的是调用fopen以使名称为JohnShepard.html(即变量的内容)。这样的事情甚至可能吗?

1 个答案:

答案 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更安全,因为它要求您提供输出缓冲区的大小。如果没有足够的空间,那么你不会最终超越缓冲区(这是危险的)。此外,它不会修改原始字符串,但这是否重要取决于您。