#c #string #arduino #type-conversion #integer
Вопрос:
Я работал над проектом конвертера с использованием Arduino/C. В определенный момент в моем коде генерируется String
последовательность из 0 и 1, например: 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
один за другим?
Заранее спасибо!
Комментарии:
1. Arduino обычно программируется на C , и то, что вы используете
String
класс, означает, что вы тоже это делаете.2. Извини за это. Я не уверен, понял ли я то, что вы сказали о Струнах. Не могли бы вы объяснить, пожалуйста?
3. Он просто сделал вывод, что вы говорили не о C, потому что в вашем коде используется объект Arduino (т. Е. C )
String
.4. Спасибо вам, ребята, за разъяснение!
Ответ №1:
Если вы уверены, что символы my_string
всегда будут цифрами, то типичным методом получения char
числового значения числа является простое вычитание '0'
. Это работает, потому что значения ASCII для цифр расположены по порядку , поэтому, вычитая '0'
, вы вычитаете их смещение (48) из фактического значения 0.
Этот charAt(n)
метод можно использовать для получения символа с заданным индексом.
bitsum = x.charAt(i) - '0' y.charAt(i) - '0';
Комментарии:
1. Большое вам спасибо за ваш вклад, он мне очень помог!