从Sqlite

时间:2016-02-20 05:34:49

标签: c string sqlite concatenation

我需要附加一个带有sqlite记录集列条目的字符串,我使用这个

char a[16]=(unsigned char *)"Name: "+(unsigned char *)rs.recordset[0][1];

但我一直收到这个错误。

  

错误:二进制+

的操作数无效

我做错了什么?

2 个答案:

答案 0 :(得分:1)

在C中,+符号不会连接字符串。

根据C11标准,章节§6.5.6,添加剂运算符

  

另外,两个操作数都应具有算术类型,或者一个操作数应为a   指向完整对象类型的指针,另一个指针应具有整数类型。[..]

因此,+不会连接两个字符串

您需要使用strcat()加入两个字符串。

这样的东西
char a[16] = {0};
strcat(a, "name");
strcat(a, rs.recordset[0][1] );

应该为你完成这项工作,前提是,a的长度足以正确保存最终输出(连接字符串)。

答案 1 :(得分:-2)

@ sourav,你需要复制" name",

    char a[16]=0;
    strcpy(a,"name");
    strcat(a, rs.recordset[0][1]);