FreeCode.Academy

Стратегии обучения

Уроки

Технологии

Участники

Проекты

Топики

Блоги

Офис

О проекте

, чтобы сохранить свой прогресс
Вячеслав
Вячеслав
1 окт. 2021 г., 7:24

Обсуждение задания "Escape Sequences in Strings"

Зачем тут табуляция? Я не понял...
Николай Ланец
Николай Ланец
1 окт. 2021 г., 7:28
Вячеслав, я не очень понял вопрос. В одном из требований задачи указано: "myStr should contain a tab character \t which follows a newline character", то есть переменная myStr должна содержать спецсимвол \t (табуляция). Что именно тут не так?
Вячеслав
Вячеслав
1 окт. 2021 г., 7:31
Первая линия \Вторая линия ThirdLine Просто я думал, что должно выводиться именно так... Здесь же нет табуляции...
Николай Ланец
Николай Ланец
1 окт. 2021 г., 7:42
Смотрите, тут надо видеть разницу между конечным отображением и первичным вводом данных. Программы выводят текст как правило с использованием форматирования. Когда они встречают такие спецсимволами, они их используют в форматировании (при этом часто преобразовывают). Вот посмотрите, что выводится консолью:


То есть мы ввели как есть исходную строку, а консоль на выходе отформатировала этот текст.
Что же касается табуляции: в некоторых программах она может быть заменена на какое-то количество символов пробелов. При этом в зависимости от ностроек (сколько пробелов используется вместо знака табуляции) будет зависеть реальная ширина. К примеру, у меня указано 2 символа, у кого-то может быть 4 или какое другое число. То есть на входе будет один символ табуляции, а на выходе будет куча пробелов.
Eugen
Eugen
1 сент. 2022 г., 7:26
в консоли строка отображается так
FirstLine
\SecondLine
ThirdLine
табуляция это 4 пробела, а в задании показано отступ \SecondLine на 1 пробел, сбивает)
Николай Ланец
Николай Ланец
1 сент. 2022 г., 9:11
Eugen, табуляция - это табуляция (в нашем случае спецсимвол \n). Сам по себе это всегда только один символ, а ширина его определяется настройками операционной системы или конечной программы пользователя.
Но в IDE распространенная практика - иметь возможность указать что в качестве табуляции используются знаки пробела. То есть здесь происходит перехват нажатия кнопки TAB, и вместо символа \t создается указанное количество пробелов (а это может быть сколько угодно пробелов, в зависимости от настроек).
Так что здесь грешить не на кого. Здесь четко \t - это один символ табуляции, и размер отступа (ширина) будет индивидуально, но сколько табов, столько и символов, так что если 2 таба, то 2 раза курсорной клавишей вы проходите.

Добавить комментарий