我正在尝试使用 sscanf(inputCmd, "%s%d", cmd, value);
将字符串 inputCmd
转换为字符串 cmd
,以及我的 Arduino 草图中的 int value
。但是它不起作用,因为变量显然是错误的类型(字符串,而不是 char*)
inputCmd 的格式为 FOO90,数字和字符串的长度都不能假设为常数。将 inputCmd
的两部分分开并将它们存储在 2 个变量中的最佳方法是什么? cmd
应为 FOO,value
应为 90。
谢谢。
最佳答案
除了 String
与 char*
的问题外,scanf
格式 "%s"
读取 < em>空格分隔 字符串。如果字符串和数字之间没有空格,则不能使用 sscanf
。
作为一种可能的解决方案,您可以尝试获取输入字符串每个部分的 substring 以及数字部分 convert it to an int
。
要找出第一个子串的长度(应该放入cmd
)和数字的起始位置,需要遍历字符串的字符,直到找到一个non-alphabetic性格。
关于c++ - 将字符串拆分为字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306636/