防止空字符终止我的字符串的最简单方法是什么?

克里斯蒂安·克拉耶夫斯基(Kristian Krajewski)

我目前正在研究一些C代码,以通过蓝牙转发CAN消息,反之亦然(µC东西)。问题是我配对的蓝牙设备使用“ 00”作为命令,而我的蓝牙库在从BT接收时使用char []来缓冲字符串。这不可避免地终止了字符串,因为它将命令解释为NULL字符。同样,CAN帧中的任何空数据字节都将导致相同的问题。

通过将CAN消息存储在字节数组中并向BT模块发送一系列字节后跟CR,我能够解决从CAN到BT时的问题,但是反之则不那么容易,因为BT库正在使用各种基于字符串的命令。

有没有一种简单的方法可以防止NULL导致不必要的终止,或者我必须将整个库重写为合适的数据类型,在这种情况下哪种方法最有效?任何想法表示赞赏!

伍特·韦尔赫斯特

C中没有“字符串”类型;您在C中所说的字符串实际上只是一个char *,它也只是一系列字节。每当您将这样的一系列字节传递给字符串处理函数(无论是否为标准C库的一部分)时,这些函数都会将任何嵌入的NULL视为字符串终止,并在那里终止处理。但这并不意味着您的二进制数据在该位置结束。

您的问题不在于您的库为您获取了字符串,而是您正在将二进制数据与字符串混淆。您不是在处理字符串,而是在处理二进制数据。如果有帮助,可以将char *变量转换为void *变量;否则,可以将变量转换为变量。严格来说,这不是必需的,但可以帮助您记住它是二进制数据。然后,使用压缩包struct(如果数据具有固定的偏移量)或编写自定义解析器函数(如果没有)来处理传入或传出CAN总线的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JS在字符串中找出字符重复的最简单方法是什么?

来自分类Dev

在Julia中获取UTF-8子字符串的最简单方法是什么

来自分类Dev

在Powershell中增加字符串变量中数字的最快/最简单方法是什么?

来自分类Dev

将字符串(例如“5:4”)转换为数值的最简单方法是什么

来自分类Dev

在TypeScript数字上检查空字符串的最简单方法

来自分类Dev

在特定的两个字符之间获取字符串的最简单方法是什么?

来自分类Dev

检查数据帧值中是否出现字符/子字符串的最简单方法是什么?

来自分类Dev

在Javascript中将对象连接为以空格分隔的字符串的最简单方法是什么

来自分类Dev

使用Java 8将字符串数组转换为int数组的最简单方法是什么?

来自分类Dev

使用部分匹配的字符串进行CLI搜索和替换的最简单方法是什么?

来自分类Dev

从字符串向量初始化2d数组的最简单方法是什么?

来自分类Dev

在Rails中将:pluck或:collect结果转换为字符串数组的最简单方法是什么?

来自分类Dev

在Elixir中将列表数据结构转换为字符串的最简单方法是什么

来自分类Dev

将字符串存储到以后可以搜索和比较的表中的最简单方法是什么?

来自分类Dev

拆分后我的readline()的空字符串是什么

来自分类Dev

检查包含列表中字符串的字符串的最简单方法?

来自分类Dev

从逗号分隔的字符串中查找特定字符串的最简单方法

来自分类Dev

在perl中用字符串中的空格替换非数字字符的更简单方法是什么?

来自分类Dev

重复字符串的简单方法

来自分类Dev

在数组中为所有字符串加上前缀“!”的最简单方法是什么?(感叹号)在javascript中?

来自分类Dev

在XE4及更高版本中,检查字符串是否可以安全地转换为AnsiString的最简单方法是什么?

来自分类Dev

从命令行在文件的每一行的开头添加字符串的最简单方法是什么?

来自分类Dev

在XE4及更高版本中,检查字符串是否可以安全地转换为AnsiString的最简单方法是什么?

来自分类Dev

设置DateTime的最简单的字符串值是什么

来自分类Dev

设置DateTime的最简单的字符串值是什么

来自分类Dev

处理包含双引号内的单引号或相反情况的字符串的简单方法是什么?

来自分类Dev

在Java中将int(字节)转换为单字符字符串的最简单方法

来自分类Dev

检查字符串是否为bcrypt哈希的最简单,最快的方法是什么?

来自分类Dev

在Java中,创建随机字母数字字符串的绝对最简单的方法是什么?

Related 相关文章

  1. 1

    使用JS在字符串中找出字符重复的最简单方法是什么?

  2. 2

    在Julia中获取UTF-8子字符串的最简单方法是什么

  3. 3

    在Powershell中增加字符串变量中数字的最快/最简单方法是什么?

  4. 4

    将字符串(例如“5:4”)转换为数值的最简单方法是什么

  5. 5

    在TypeScript数字上检查空字符串的最简单方法

  6. 6

    在特定的两个字符之间获取字符串的最简单方法是什么?

  7. 7

    检查数据帧值中是否出现字符/子字符串的最简单方法是什么?

  8. 8

    在Javascript中将对象连接为以空格分隔的字符串的最简单方法是什么

  9. 9

    使用Java 8将字符串数组转换为int数组的最简单方法是什么?

  10. 10

    使用部分匹配的字符串进行CLI搜索和替换的最简单方法是什么?

  11. 11

    从字符串向量初始化2d数组的最简单方法是什么?

  12. 12

    在Rails中将:pluck或:collect结果转换为字符串数组的最简单方法是什么?

  13. 13

    在Elixir中将列表数据结构转换为字符串的最简单方法是什么

  14. 14

    将字符串存储到以后可以搜索和比较的表中的最简单方法是什么?

  15. 15

    拆分后我的readline()的空字符串是什么

  16. 16

    检查包含列表中字符串的字符串的最简单方法?

  17. 17

    从逗号分隔的字符串中查找特定字符串的最简单方法

  18. 18

    在perl中用字符串中的空格替换非数字字符的更简单方法是什么?

  19. 19

    重复字符串的简单方法

  20. 20

    在数组中为所有字符串加上前缀“!”的最简单方法是什么?(感叹号)在javascript中?

  21. 21

    在XE4及更高版本中,检查字符串是否可以安全地转换为AnsiString的最简单方法是什么?

  22. 22

    从命令行在文件的每一行的开头添加字符串的最简单方法是什么?

  23. 23

    在XE4及更高版本中,检查字符串是否可以安全地转换为AnsiString的最简单方法是什么?

  24. 24

    设置DateTime的最简单的字符串值是什么

  25. 25

    设置DateTime的最简单的字符串值是什么

  26. 26

    处理包含双引号内的单引号或相反情况的字符串的简单方法是什么?

  27. 27

    在Java中将int(字节)转换为单字符字符串的最简单方法

  28. 28

    检查字符串是否为bcrypt哈希的最简单,最快的方法是什么?

  29. 29

    在Java中,创建随机字母数字字符串的绝对最简单的方法是什么?

热门标签

归档