如何将 String 的特定元素转换为 int Arduino/C++

How to convert a specific element of a String into an int Arduino/C++

我正在使用 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
提前致谢!

如果您确定 my_string 的字符 总是 是数字,那么获取 char 数字的数值的典型方法是只是减去 '0'。这是有效的,因为数字的 ASCII 值是按顺序排列的,所以通过减去 '0',你从实际的 0 值中减去它们的偏移量 (48)。

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

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