Длина строки больше реальной на 1

Mr_White

✩✩✩✩✩✩✩
2 Авг 2026
8
0
Оформи код соответствующим тэгом, см. Правила
Написал код для определения длины передаваемой микроконтроллеру строки. Запускаю, ввожу строку - получаю всё время значение на 1 больше реальной длины строки. То есть если ввожу "abc", то получаю 4, а не 3. Почему?

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}

void loop()
{
// put your main code here, to run repeatedly:
if (Serial.available())
{
String s = Serial.readString();
Serial.println(s.length());

}
}
 

Mr_White

✩✩✩✩✩✩✩
2 Авг 2026
8
0
@bort707, Спасибо, просто string в чистом C++ (не String) работает нормально (не прибавляет лишнюю единицу)

@bort707, А есть учебники по Arduino?
 

bort707

★★★★★★★
21 Сен 2020
3,501
1,003
Ардуино тут вовсе не причем. И никто никаких единиц не прибавляет. Просто у вас реально в строке 4 символа = 'a' + 'b' + 'c' + перевод строки
"string в чистом C++" тоже показал бы вам 4
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,436
422
Москва
wan-derer.ru