我来自java,我无法弄清楚这一点。我正在尝试连接字符串以使用系统函数运行带有参数的命令,这就是我正在做的,但它不起作用:
system("command "+param1+" other stuff "+param3);
答案 0 :(得分:6)
要在C中连接字符串,请使用snprintf
在C字符串中表示为字符数组。他们的名字是指向他们的第一个元素。每个操作都应该使用功能完成。在其他情况下,您只需进行指针运算。因此,您尝试从地址启动函数的示例可能甚至不存在于系统中。
请勿使用strcat
!这很危险如果你真的需要简单的功能来调用使用strlcat
有关详细信息,您需要back to basics
答案 1 :(得分:3)
您可能希望使用类似snprintf
的函数构建命令字符串:您可以在字符串中插入各种类型(不仅仅是字符串),并且可以防止缓冲区溢出(检查其返回值! )。
char buffer[256];
if(snprintf(buffer, sizeof(buffer), "command %s other stuff %s", param1, param3)>=sizeof(buffer))
{
/* the buffer isn't big enough */
}
else
system(buffer);
答案 2 :(得分:0)
c
中没有运算符重载。您必须创建足够的缓冲区,然后使用库函数strcat
。