C:如何创建一个空的STRING?

时间:2018-11-20 18:18:36

标签: c arrays string

请问我已经为此奋斗了5个小时,我知道如何创建一个像这样的空字符:

char c[] = '';

但是如何创建空STRING? (因为我想将其用作存储其他字符串的临时位置)

char temporary[] = "";
error : array type 'char [1]' is not assignable

2 个答案:

答案 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个字符的可用空间,可以放入字符串。