c++ - 将字符串拆分为字符串和整数

标签 c++ string arduino

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

inputCmd 的格式为 FOO90,数字和字符串的长度都不能假设为常数。将 inputCmd 的两部分分开并将它们存储在 2 个变量中的最佳方法是什么? cmd 应为 FOO,value 应为 90。

谢谢。

最佳答案

除了 Stringchar* 的问题外,scanf 格式 "%s" 读取 < em>空格分隔 字符串。如果字符串和数字之间没有空格,则不能使用 sscanf

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

要找出第一个子串的长度(应该放入cmd)和数字的起始位置,需要遍历字符串的字符,直到找到一个non-alphabetic性格。

关于c++ - 将字符串拆分为字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306636/

相关文章:

c++ - ("hello"+ 1) VS ( *"hello") + 1 VS (* ("hello"+ 1)) 之间的差异

emacs - Arduino Emacs 开发

c++ - 将计时器的初始化从 arduino 转换为 C++

创建一个具有相同值的 BST 节点的字符串

c++ - Objective-C 与 C++ 有何不同?

c++ - 修改XML文件QXMLStreamReader/Writer

c++ - 写入序列号流 `operator>>`?

php - 如何在一个部分是数字而另一部分是“int”的单词之间替换...?

c - Arduino函数绝对数组?

如果在类型 int vector 中找到重复项,C++ 返回 true