c++ - 将字节连接到字符串

标签 c++ arduino

我想将两个字符串保存到 EEPROM,用 255(或 0)个字符分隔每个字符串,以便稍后我可以读取它们,知道每个字符串何时结束。

void saveToE(String data) {
  int str_len = data.length() + 1; 
  char char_array[str_len];
  data.toCharArray(char_array, str_len);
  for(int addr = 0; addr < str_len; addr++){
    EEPROM.write(addr, char_array[addr]);
  }
}

问题是数据的串联:

String part1 = "Hello";
String part2 = "World";
String data = part1 + byte 255 + part2 + byte255;

如何在第 1 部分和第 2 部分之后添加字节 255?

最佳答案

你应该能够使用字符串连接来完成它,就像这样:

String part1 = "Hello";
String part2 = "World";
String separator = "\xFF"; // That's character 255, in hex
String data = part1 + separator + part2 + separator;

您也可以在 saveToE 函数中进行连接,如下所示:

void saveTwoStringsToE(String one, String two) {
  int str_len1 = one.length(); 
  int str_len2 = two.length(); 
  // Add two bytes for 255 separators, and an extra byte for null terminator
  char char_array[str_len1+str_len2+3];
  one.toCharArray(char_array, str_len1);
  char_array[str_len1] = 255;
  two.toCharArray(char_array+str_len1+1, str_len2);
  char_array[str_len1+1+str_len2] = 255;
  for(int addr = 0; addr < str_len1+str_len2; addr++) {
    EEPROM.write(addr, char_array[addr]);
  }
}

关于c++ - 将字节连接到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149483/

相关文章:

ios - 在 iOS 中比较蓝牙发送的 ASCII 字符时出现问题

c++ - 在 C++ 中替代 sscanf_s

c++ - 我可以在 await_suspend 期间调用 coroutine_handle::resume 吗?

c++ - 如何使用多个二进制包创建 linux debian 包?

c# - 如何实现从非托管 DLL 到 .net 应用程序的回调接口(interface)?

c++ - Arduino内存泄漏(SD卡+字符串)

ubuntu - 如何在 Ubuntu 上下载并安装 CP210x USB 转 UART 桥接器的驱动程序

c++ - 如何隐藏类中的寄存器地址

c++ - 修复 TinyWireS 库的 I2C 地址问题

javascript - Nodejs CoAP 服务器未接收有效负载