【问题标题】:How to convert a specific element of a String into an int Arduino/C++如何将字符串的特定元素转换为 int Arduino/C++
【发布时间】:2021-06-15 05:52:05
【问题描述】:

我正在使用 Arduino/C 进行转换器项目。在我的代码中的某个点,生成了一个由 0 和 1 组成的 String 序列,例如: my_string = "01101";。我想在 for 循环中处理这些数据,如这个最小示例所示:

String x = "01011", y = "00011"; // These variables necessarily must have the same length

for(int i = 5; i > -1; i--) // Going from last index to first
{
    bitsum = x[i].toInt() + y[i].toInt(); // Summing up each pair of bit, here is the problem
}

我的意思是:有没有办法将String 中的一个准确而具体的元素一个一个地转换为int
提前致谢!

【问题讨论】:

  • Arduino 通常是用 C++ 编程的,你使用 String 类意味着你也在这样做。
  • 对不起。我不确定我是否理解你所说的关于字符串的内容。介意解释一下吗?
  • 他只是在推断您不是在谈论 C,因为您的代码使用了 Arduino(即 C++)String 对象。
  • 谢谢你们的澄清!

标签: c++ string arduino type-conversion integer


【解决方案1】:

如果您确定my_string 的字符将始终是数字,那么获得char 数字的数值的典型方法是减去'0'。之所以可行,是因为数字的 ASCII 值是按顺序排列的,因此通过减去 '0',您就是从实际的 0 值中减去它们的偏移量 (48)。

charAt(n) 方法可用于获取给定索引处的字符。

bitsum = x.charAt(i) - '0' + y.charAt(i) - '0';

【讨论】:

  • 非常感谢您的贡献,对我帮助很大!
猜你喜欢
  • 2017-09-21
  • 2011-12-16
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
相关资源
最近更新 更多