【发布时间】:2016-02-20 05:34:49
【问题描述】:
我需要附加一个带有sqlite记录集列条目的字符串,我用这个
char a[16]=(unsigned char *)"Name: "+(unsigned char *)rs.recordset[0][1];
但我不断收到此错误。
错误:二进制
+的操作数无效
我做错了什么?
【问题讨论】:
标签: c string sqlite concatenation
我需要附加一个带有sqlite记录集列条目的字符串,我用这个
char a[16]=(unsigned char *)"Name: "+(unsigned char *)rs.recordset[0][1];
但我不断收到此错误。
错误:二进制
+的操作数无效
我做错了什么?
【问题讨论】:
标签: c string sqlite concatenation
在 C 中,+ 符号不连接字符串。
根据C11 标准,第 §6.5.6 章,加法运算符
对于加法,两个操作数都应具有算术类型,或者一个操作数应为 指向完整对象类型的指针,另一个应具有整数类型。[..]
所以,+ 不会连接两个 字符串。
您需要使用strcat() 来连接两个字符串。
类似
char a[16] = {0};
strcat(a, "name");
strcat(a, rs.recordset[0][1] );
应该为您完成这项工作,前提是a 的长度足以正确保存最终输出(连接字符串)。
【讨论】:
@sourav,你需要复制“名字”,
char a[16]=0;
strcpy(a,"name");
strcat(a, rs.recordset[0][1]);
【讨论】: