将字节连接到字符串
Concatenating bytes to strings
我想将两个字符串保存到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);
那么您应该能够按照您的计划使用字符串作为分隔符
相关文章:
- 使用短运算符的字符串连接有区别吗?
- 字符串连接时间复杂度 c++
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 如何在 C 宏中将变量字符串与文字字符串连接起来?
- C++中干净高效的字符串连接
- 如何将 Unicode 字符串连接成字符串以传递到 mysql 调用中
- 如何与字符串连接thar数组
- 如何将平台^字符串转换为wstring,然后与L字符串连接
- 如何在c++中进行快速字符串连接
- 在C++中,相当于CPython字符串连接
- 如何在 c++ 中使用 STL 将带有空格的字符串连接成一个字符串
- C++将三个char*字符串连接在一起
- 尝试通过二叉树中的递归返回字符串(连接)
- 使用流的字符串连接返回垃圾
- 将字符串变量与整数和文本字符串连接起来的 C++ 字符串流
- 将 int 变量与字符串连接会导致奇怪的输出
- C++ 将常量字符 * 与字符串连接起来,仅打印常量字符 *
- 通过将模板参数与字符串连接起来生成C++类型名
- 将我的对象与字符串连接
- 没有得到预期的结果字符串连接