将字节连接到字符串

Concatenating bytes to strings

本文关键字:字符串 连接 字节      更新时间:2023-10-16

我想将两个字符串保存到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;

如何在part1和part2之后添加字节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]);
  }
}

试试这个:

char separator_char[1];
separator_char[0] = 255;
String separator_string = String(separator_char);

那么您应该能够按照您的计划使用字符串作为分隔符