Tcl добавить символ N раз в конце строки - PullRequest
2 голосов
/ 22 февраля 2011

Как я могу добавить N пробелов в конце строки, когда, например, N = (25 - string_length)? Есть команда, которая выполняет эту процедуру напрямую, или я должен использовать цикл?

Ответы [ 3 ]

10 голосов
/ 22 февраля 2011

Другой способ справиться с этим - с помощью команды форматирования, если вы знаете, что вам нужна строка длиной 25 с пробелами справа, тогда:

% format "|%-25s|" hello
|hello                    |

должен сделать это. (| Просто для определения результата). Также можно использовать переменную для задания общей ширины вывода:

% set width 25
25
% format "|%-*s|" $width hello
|hello                    |
8 голосов
/ 22 февраля 2011

Есть несколько способов сделать это:

С форматом

set padded [format "%-25s" $str]

(см. Также ответ Джексона .)

с повторением строки

set padded $str[string repeat " " [expr {25 - [string length $str]}]]

с добавлением в цикл

for {set padded $str} {[string length $padded] < 25} {} {
    append padded " "
}

В двоичном формате

set padded [binary format "A25" $str]

(Обратите внимание, что это безопасно только для персонажей до \u00FF.)

3 голосов
/ 22 февраля 2011

Вы можете использовать string repeat, то есть

% string repeat : 25
:::::::::::::::::::::::::
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...