将字符串拆分为字符串和int

时间:2017-07-25 14:44:45

标签: c++ string arduino

我正在尝试使用sscanf(inputCmd, "%s%d", cmd, value);将字符串inputCmd转换为字符串cmd,并将我的Arduino草图中的value转换为inputCmd。但是它不起作用,因为显然变量是错误的类型(String,而不是char *)

inputCmd的格式为FOO90,并且数字或字符串的长度都不能假定为常量。将cmd的2个部分分开并将它们存储在2个变量中的最佳方法是什么? value应为FOO,DataLossError: Unable to open table file C:\Users\Mert\best_model.ckpt: Data loss: file is too short to be an sstable: perhaps your file is in a different file format and you need to use a different restore operator? [[Node: save_5/RestoreV2_51 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save_5/Const_0_0, save_5/RestoreV2_51/tensor_names, save_5/RestoreV2_51/shape_and_slices)]] 应为90。

感谢。

1 个答案:

答案 0 :(得分:2)

Stringchar*的问题外,scanf格式"%s"读取空格分隔的字符串。如果字符串和数字之间没有空格,则无法使用sscanf

作为一种可能的解决方案,您可以尝试获取输入字符串的每个部分的substring,以及数字部分convert it to an int

要找出第一个子字符串的长度(应放入cmd)和数字的起始位置,您需要迭代字符串的字符,直到找到{{3} } character。