Tcl在字符串末尾添加符号N次

Nar*_*rek 2 string tcl

如何在字符串的末尾添加N个空格,例如N =(25 - string_length)?有没有直接执行此过程的命令,或者我应该使用循环?

Jac*_*son 10

解决这个问题的另一种方法是使用format命令,如果你知道你想要一个长度为25的字符串,那么右边用空格填充:

% format "|%-25s|" hello
|hello                    |
Run Code Online (Sandbox Code Playgroud)

应该这样做.(|只是用于分隔结果).也可以使用变量来设置输出的总宽度:

% set width 25
25
% format "|%-*s|" $width hello
|hello                    |
Run Code Online (Sandbox Code Playgroud)


Don*_*ows 8

做这件事有很多种方法:

格式化

set padded [format "%-25s" $str]
Run Code Online (Sandbox Code Playgroud)

(另见杰克逊的答案.)

用字符串重复

set padded $str[string repeat " " [expr {25 - [string length $str]}]]
Run Code Online (Sandbox Code Playgroud)

附加循环

for {set padded $str} {[string length $padded] < 25} {} {
    append padded " "
}
Run Code Online (Sandbox Code Playgroud)

用二进制格式

set padded [binary format "A25" $str]
Run Code Online (Sandbox Code Playgroud)

(请注意,这对于最多的角色来说是安全的\u00FF.)