我遇到一些代码问题。 已经阅读了大量的主题,但大多数都与自定义库有关。
我的代码与任何自定义库无关。 我希望你们中的一些人知道我做错了什么。 我只是想把两个字符串“合并”成一个新变量。
错误:
sketch_SS01:13: error: invalid operands of types 'char [14]' and 'char [5]' to binary 'operator+'
char apiPath = apiPage + pid;
^
exit status 1
invalid operands of types 'char [14]' and 'char [5]' to binary 'operator+'
与此代码相关的错误:
// api details
char apiPage[] = "/api.php?pid=";
char pid[] = "8855";
char apiPath = apiPage + pid;
答案 0 :(得分:2)
编译器说:你不能使用operator+
来连接C字符串(即char[]
)。您需要使用库函数strcat
或更安全的兄弟strncat
。
字符串x
与字符串dest
的串联是strcat (dest,x);
但请查阅文档,并在处理char数组时特别注意缓冲区溢出的风险。
要编写您编写的示例,您可以执行
// api details
char apiPage[] = "/api.php?pid=";
char pid[] = "8855";
char apiPath[100] = ""; // make sure it' long enough and initialized to empty string
strcat(apiPath, apiPage);
strcat(apiPath, pid);
或者您可以使用strcpy
或strncpy
将字符串复制到目标字符串中的正确位置。
<强>增加:强>
(可能更好/更简单/更安全)替代方法是使用具有所有预期字符串功能的String
类(如构造函数,添加,追加等):请参阅https://www.arduino.cc/en/Reference/StringObject