【发布时间】:2017-07-25 14:44:44
【问题描述】:
我正在尝试使用sscanf(inputCmd, "%s%d", cmd, value); 将字符串inputCmd 转换为字符串cmd,并在我的Arduino 草图中转换为int value。但是它不起作用,因为显然变量是错误的类型(字符串,而不是 char*)
inputCmd 的格式为 FOO90,无论是数字的长度还是字符串的长度都不能假定为常数。将inputCmd 的两部分分开并将它们存储在 2 个变量中的最佳方法是什么? cmd 应该是 FOO,value 应该是 90。
谢谢。
【问题讨论】:
-
FOO里面可以有数字吗?喜欢FOO123BAR42? -
不,只会是 XXXXXXXYYY,其中 X 是字母,Y 是数字。长度未知。
-
我的理解是要把整型变量的地址传给
sscanf,比如sscanf(inputCmd, "%s%d", cmd, &value);。 -
好的。然后计数,直到找到第一个数字,然后使用该位置拆分字符串。
-
@ThomasMatthews 使用 &value 我得到“无法将参数 '1' 的 'String' 转换为 'const char*' 到 'int scanf(const char*, ...)'”