请问我已经为此奋斗了5个小时,我知道如何创建一个像这样的空字符:
char c[] = '';
但是如何创建空STRING? (因为我想将其用作存储其他字符串的临时位置)
char temporary[] = "";
error : array type 'char [1]' is not assignable
答案 0 :(得分:5)
定义一个缓冲区来保存字符串内容:
#define BUFFER_SIZE 256 // or whatever size you need
char buffer[BUFFER_SIZE+1] = {0}; // +1 for string terminator,
// = {0} initializer zeroes out entire buffer
要将字符串分配到此缓冲区,请使用strcpy
:
strcpy( buffer, "some string" );
要将字符串附加到此缓冲区,请使用strcat
:
strcat( buffer, "more string" );
编辑
现在您已经编辑了问题,问题出在行上
tempo = "";
像tempo
这样的数组表达式可能不是=
运算符的目标;您必须使用strcpy
之类的库函数来分配字符串值。如果要将tempo
设置为空字符串,则可以执行以下任一操作:
strcpy( tempo, "" );
或
tempo[0] = 0;
或
tempo[0] = '\0';
答案 1 :(得分:1)
在function NewGoString(str) {
return new GoString({p: str, n: str.length})
}
中,您必须始终创建一个临时缓冲区。最典型的方法是编写如下代码:
var simpleRead = ffi.Library("./simpleread.so", {
ReadSomething: ["void", [GoString]]
});
simpleRead.ReadSomething(NewGoString("/path/to/your/file"))
此缓冲区将有256个字符的可用空间,可以放入字符串。