将const char *转换为二元运算符+

时间:2016-06-22 18:13:27

标签: c string arduino concatenation

我一直试图找出friends.address = "your new address comes here"; T1的正确数据类型(见下文)。

编译错误:

P1

守则:

weather_station_v1_2.ino:76:37: error: invalid operands of types ‘const char*’ and ‘const char [11]’ to binary ‘operator+’

最后if (status != 0) { delay(status); status = pressure.getPressure(P,T); const unsigned char P1 = pressure.getTemperature(P); const unsigned char T1 = pressure.getTemperature(T); byte data = "temp" + T1 + "&pressure=" + P1; httppost(); delay(1000); } 将被发送到PHP服务器,但它必须遵循方案data

你会这么好,并给我一个关于我做错的提示吗? 感谢

1 个答案:

答案 0 :(得分:2)

您的问题不是数据类型转换,但在C中,运算符+仅定义为算术运算(添加数字或向指针添加偏移量)。

您正在尝试连接字符串。没有"字符串"类型内置于C. C"字符串"是char数组,通常以0字节结尾。 C中的数组是固定大小和固定分配,因此没有数组"连接" C中的运算符。

数组上的操作,以及C"字符串"上的操作通常通过操作函数实现。在您的特定情况下,通常的方法是使用printf系列的字符串格式化函数。你应该看看snprintf