我有一个文件cr.c
。
void main(int argCount, char **args) {
system("/usr/bin/javac " + args[1]);
}
当我尝试编译时,它给了我一个错误:
cr.c: In function ‘main’:
cr.c:6:30: error: invalid operands to binary + (have ‘char *’ and ‘char *’)
system("/usr/bin/javac " + args[1]);
^
我试图通过将+
替换为.
来修复它,因为我是在PHP中连接字符串的一种方法。这只是猜测。
我不知道为什么会这样。请解释为什么会这样,以及如何解决。我不想让别人去判断我要输入什么,因为我想学习。
谢谢!
答案 0 :(得分:3)
您可能习惯于使用+符号连接字符串的高级语言。
在C中,您必须使用strcat
:
char buffer[100] = "Hello";
strcat(buffer, " World");
答案 1 :(得分:1)
+
运算符不会连接字符串。您可以调用strcat
将两个字符串连接在一起。
答案 2 :(得分:0)
连接两个字符串:
char *buffer = malloc( strlen( stringOne ) + strlen( stringTwo ) + 1 );
if( !buffer )
{ // then malloc failed
perror( "malloc failed" );
exit( EXIT_FAILURE );
}
// implied else, malloc successful
strcpy( buffer, stringOne );
strcat( buffer, stringTwo );
答案 3 :(得分:0)
感谢您的提问。 C是一种结构化语言,在这里你不能使用“。”(成员运算符)或+(添加运算符),就像c#java Cpp php或javascript一样。 您只需使用字符串头文件和预定义函数即可。