For loop 在tcl中执行for循环时如何将空格保持在字符串中

For loop 在tcl中执行for循环时如何将空格保持在字符串中,for-loop,tcl,toupper,For Loop,Tcl,Toupper,嗨,我有一根像{这是一个非常好的一天!不是吗}。我必须把每个单词的第一个字母都改成小写,但是空格也应该在那里。对于更改为大写,我使用了以下代码,但我不知道如何包括空格。 代码是: set wordlist { Its A Very Good Day! Isn't It } set newlistupper [list] for {set i 0} {$i < [llength $wordlist]} {incr i} { set word [lindex $wordli

嗨,我有一根像{这是一个非常好的一天!不是吗}。我必须把每个单词的第一个字母都改成小写,但是空格也应该在那里。对于更改为大写,我使用了以下代码,但我不知道如何包括空格。 代码是:

set wordlist {  Its A Very Good Day! Isn't It  }    
set newlistupper [list]    
for {set i 0} {$i < [llength $wordlist]} {incr i} {
set word [lindex $wordlist $i]
set newupper [string toupper $word 0 0]
lappend newlistupper $newupper
}
puts $newlistupper
set wordlist{今天天气真好!不是吗}
设置newlistupper[列表]
对于{set i 0}{$i<[llength$wordlist]}{incr i}{
设置单词[lindex$wordlist$i]
set newupper[string toupper$word 0]
lappend newlistupper$newupper
}
将$newlistupper置于上方

我想知道如何在输出中保留空格。请帮忙

您可以使用与我的答案类似的技巧来回答您的问题:

设置句子{今天天气很好!不是吗}
set lc[subst-nob-nov[regsub-all{\s[[:upper:]}$语句{[string tolower”&“]}]

放置“>$lc$lc我会像这样修改您当前的脚本:

set wordlist {  Its A Very Good Day! Isn't It  }    
set newlistlower [list]    
foreach word [regexp -inline -all -- {\W+|\w+} $wordlist] {
    set newlower [string tolower $word 0 0]
    lappend newlistlower $newlower
}
puts [join $newlistlower ""]
[regexp-inline-all--{\W+\W+}$wordlist]
将字符串拆分为单词和非单词字符,这意味着您可以保留空格和标点等等

foreach
允许您获取每个单词(空格也会进入循环,但
string tolower
不会影响它们)

这也适用于字符串,例如:

set wordlist {Its A Very Good Day! Isn't It--RIGHT  }
给予:

{its a very good day! isn't it--rIGHT  }

(括号显示右边的尾随空间)

当我运行这个代码时,它是为我工作的,但是这个词不是大写的,它不是把两个词给“不是”。我如何让计算机把它看成一个词?Jerry@user2533429您可以将regexp编辑为:
[regexp-inline-all-->\W+\W+(?:'\w)?}$wordlist]
这样做。你还有更多这样的案例吗?
set wordlist {  Its A Very Good Day! Isn't It  }    
set newlistlower [list]    
foreach word [regexp -inline -all -- {\W+|\w+} $wordlist] {
    set newlower [string tolower $word 0 0]
    lappend newlistlower $newlower
}
puts [join $newlistlower ""]
set wordlist {Its A Very Good Day! Isn't It--RIGHT  }
{its a very good day! isn't it--rIGHT  }