【问题标题】:Append String object to character array in Arduino将字符串对象附加到 Arduino 中的字符数组
【发布时间】:2016-08-18 01:53:05
【问题描述】:

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

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;

【问题讨论】:

    标签: c++ arrays string arduino


    【解决方案1】:

    这适用于 Arduino String 对象。

    strcat( charArr, msg.c_str() );
    

    String 对象msg 使用String 方法c_str() 转换为字符数组。然后,您可以使用 strcat() 附加 2 个字符数组。

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

    【讨论】:

    • 但要小心,如果charArr 不够大,这是未定义的行为。
    • char charArr[1600];对于“标准”Arduino UNO 来说可能太大了,具体取决于其他局部变量要求等。在那个方向上也要小心。行为也是未定义的。 ;)
    【解决方案2】:

    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'。
    猜你喜欢
    • 2021-04-30
    • 2016-03-02
    • 2023-01-19
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2015-02-13
    相关资源
    最近更新 更多