如何添加两个字符串

问题描述:

我有一个文件,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

“+”运算符不适用于您想要或期望的字符串。 –

+0

我知道。 “这只是一个猜测” – tylerr147

+1

研究字符串处理函数,例如'strcat',尽管你不能将参数连接到文字“/ usr/bin/javac”。但是你可以初始化一个具有足够大小的数组来保存两个字符串(和终止符)。 –

您可能习惯了高级语言,您可以使用+号连接字符串。

在C中,你必须使用strcat

char buffer[100] = "Hello"; 
strcat(buffer, " World"); 
+0

需要导入/包含哪些库? – tylerr147

+0

#include Meccano

+0

不会strncat更安全,特别是当字符串是用户输入。 – hetepeperfan

+运算符不会连接字符串。您可以拨打strcat将两个字符串连接在一起。

+0

但是您首先应该确保目标字符串足够大以容纳新字符串 – FredK

连接两个字符串:

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); 

谢谢你的问题。 C是一种结构化语言,在这里你不能使用“。”(成员运算符)或+(添加运算符),就像c#java cpp php或javascript一样。 您可以简单地使用字符串头文件和预定义的函数使其成为可能。