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

Mr_White

✩✩✩✩✩✩✩
2 Авг 2026
9
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());

}
}
 

bort707

★★★★★★★
21 Сен 2020
3,501
1,003
@Mr_White, вы теперь каждую запятую будете сюда постить? А самому подумать? В учебнике поискать? Или, хотя бы, у ИИ спросить?

То есть если ввожу "abc", то получаю 4, а не 3. Почему?
Потому что, кроме букв, в строке есть служебные символы.
 

Mr_White

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

bort707

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