我有一个函数,它具有字符串参数:
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语言中做到这一点?
答案 0 :(得分:0)
典型的方法是通过将三部分拼接在一起来创建新的字符串。一种解决方法是(从@chux注释中无耻地偷走):
char buf[1000];
sprintf(buf, “/d1/d2/d3/test%s/d2.xyz”, str);
但是在走那条路之前,您需要确保您真正了解printf系列功能,因为它们是与安全性相关的错误的常见来源。例如,对于您的示例,我的buf大小足够大,但对于一般的解决方案而言肯定不是。相反,需要考虑输入字符串的大小,以确保输出缓冲区足够大。