在C中给定的字符串中插入“字符串”变量

时间:2018-11-10 20:52:34

标签: c string path

我有一个函数,它具有字符串参数:

function(char str[3]){
 //here i want to insert the string Parameter str
 f = open("/d1/d2/d3/test"+str+"/d2.xyz")
}

我正在尝试将String参数“插入”给定的String路径。我该如何在C语言中做到这一点?

1 个答案:

答案 0 :(得分:0)

典型的方法是通过将三部分拼接在一起来创建新的字符串。一种解决方法是(从@chux注释中无耻地偷走):

char buf[1000];
sprintf(buf, “/d1/d2/d3/test%s/d2.xyz”, str);

但是在走那条路之前,您需要确保您真正了解printf系列功能,因为它们是与安全性相关的错误的常见来源。例如,对于您的示例,我的buf大小足够大,但对于一般的解决方案而言肯定不是。相反,需要考虑输入字符串的大小,以确保输出缓冲区足够大。