【问题标题】:Error when Appending String with Record Set entry from Sqlite使用 Sqlite 的记录集条目附加字符串时出错
【发布时间】:2016-02-20 05:34:49
【问题描述】:

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

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

但我不断收到此错误。

错误:二进制+的操作数无效

我做错了什么?

【问题讨论】:

    标签: c string sqlite concatenation


    【解决方案1】:

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

    根据C11 标准,第 §6.5.6 章,加法运算符

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

    所以,+ 不会连接两个 字符串

    您需要使用strcat() 来连接两个字符串。

    类似

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

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

    【讨论】:

    • 我希望它像在 c# 或 Java 中那样更容易 :) 顺便说一句,我已经编辑了您的答案以修复错误。
    【解决方案2】:

    @sourav,你需要复制“名字”,

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

    【讨论】:

    • 这是回复this other answer的尝试,本身并不是一个答案。
    • 这不是答案。与您之前的评论作为答案一样,提交非答案不适合绕过 cmets 的代表限制。请阅读How to Answerhelp center
    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多