如何将 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';
我正在使用 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';