Fra*_*lea 21 c string-concatenation
答案之一,以你为什么不使用C为您的Web应用程序?包含以下内容:
对于下面的C crap示例:
Run Code Online (Sandbox Code Playgroud)const char* foo = "foo"; const char* bar = "bar"; char* foobar = (char*)malloc(strlen(foo)+strlen(bar)+1); strcpy(foobar, foo); strcat(foobar, foo);实际上,常量CAN和应该在C中自然连接:
Run Code Online (Sandbox Code Playgroud)const char foo[] = "foo"; const char bar[] = "bar"; char foobar[] = foo bar; // look Ma, I did it without any operator!使用[]代替*甚至可以让你修改字符串,或者找到它们的长度:
Run Code Online (Sandbox Code Playgroud)int foo_str_len = sizeof(foobar)-1;所以,请你,在你(错误地)声称C很难用字符串之前,学习如何使用C.
我自己尝试过,但得到一个错误:
预期','或';' 字符串常量之前
所以我的问题是:我是否需要告诉编译器一些东西才能使这项工作或上面的帖子完全错误?请注意,我知道在C中连接字符数组的其他方法.
Lun*_*din 39
(字符*)malloc的
永远不要在C中对malloc的结果进行类型转换.阅读本文和此内容.
实际上,常量CAN和应该在C中自然地连接起来
不,字符串文字可以而且应该在C中连接"foo"是一个字符串文字,const char foo[]是一个常量字符串(字符数组).代码"foo" "bar"将自动连接,代码foo bar不会.
如果需要,可以隐藏宏后面的字符串文字:
#define foo "foo"
#define bar "bar"
char foobar[] = foo bar; // actually works
Run Code Online (Sandbox Code Playgroud)
所以,请你,在你(错误地)声称C很难用字符串之前,学习如何使用C.
Ç 是相当困难的用绳子用,因为我们可以从这个例子很看.尽管他们有着傲慢的自信,写下来的人混淆了各种概念,仍然需要学习如何使用C.