在Arduino中将字符串对象附加到字符数组

5

我正在使用Arduino。我想将一个字符串对象附加到一个字符数组中。

String msg = "ddeeff"

char charArr[1600];

//assume charArr already contains some string
//How can I do something like this to append String to charArray?
charArr = charArr + msg;
2个回答

4
这适用于Arduino String对象。
strcat( charArr, msg.c_str() );

字符串对象msg通过String方法转换为字符数组。然后,可以使用strcat()将两个字符数组连接在一起。

如Rakete1111所述,如果charArr不够大,则行为未定义。


1
但要小心,如果charArr不够大,则会出现未定义的行为。 - Rakete1111
char charArr[1600];可能对于“标准” Arduino UNO 来说太大了,这取决于其他本地变量的要求等等。在这个方向上要小心。行为也是未定义的。 ;) - datafiddler

1

String有一个operator+,它可以接受一个const char*,同时它还有一个c_str()函数,将其转换为const char*

您可以将它们组合以获得所需的结果:

String temp = charrArr + msg; //Store result in a String

//Copy every character
std::strncpy(charArr, temp.c_str(), sizeof(charrArr));

现在 charArr 可能不包含终止符 '\0'。 - user2672107

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接