如何添加两个字符串
问题描述:
我有一个文件,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。这只是一个猜测。
我不知道为什么会发生这种情况。请解释为什么会发生这种情况,并且如何修复它。我不想让别人来判断我要学什么,而是要打印什么。
谢谢!
答
您可能习惯了高级语言,您可以使用+号连接字符串。
在C中,你必须使用strcat
:
char buffer[100] = "Hello";
strcat(buffer, " World");
答
连接两个字符串:
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一样。 您可以简单地使用字符串头文件和预定义的函数使其成为可能。
“+”运算符不适用于您想要或期望的字符串。 –
我知道。 “这只是一个猜测” – tylerr147
研究字符串处理函数,例如'strcat',尽管你不能将参数连接到文字“/ usr/bin/javac”。但是你可以初始化一个具有足够大小的数组来保存两个字符串(和终止符)。 –