0

こんにちは、 { Its A Very Good Day! のような文字列があります。ですよね} . すべての単語の最初の文字をすべて小文字に変更する必要がありますが、スペースも必要です。大文字に変更するために、次のコードを使用しましたが、スペースを含める方法もわかりません。コードは次のとおりです。

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

出力にもスペースを保持する方法を知りたいです。助けてください。

4

2 に答える 2

0

前の質問に対する私の回答と同様の手法を使用できます。

set sentence {  Its A Very Good Day! Isn't It  }
set lc [subst -nob -nov [regsub -all {\s[[:upper:]]} $sentence {[string tolower "&"]}]]
puts ">$lc<"
>  its a very good day! isn't it  <

それを行う別の方法

% regexp -all -inline -indices {\s[[:upper:]]} $sentence 
{1 2} {5 6} {7 8} {12 13} {17 18} {22 23} {28 29}
% set lc $sentence
  Its A Very Good Day! Isn't It  
% foreach match [regexp -all -inline -indices {\s[[:upper:]]} $sentence ] {
    set lc [string replace $lc {*}$match [string tolower [string range $lc {*}$match]]]
}
% puts ">$lc<"
>  its a very good day! isn't it  <
于 2013-07-30T00:36:36.157 に答える