Mam ciąg znaków i chcę sprawdzić, czy zaczyna się od określonej litery (w tym przypadku #). Chciałbym poznać najbardziej efektywny sposób robienia tego!Jaki jest najskuteczniejszy sposób sprawdzenia, czy ciąg zaczyna się od określonej litery w TCL?
To, o czym myślę, to if {[string compare -length 1 $string "#"]}
, ponieważ może użyć metody strcmp(), która prawdopodobnie będzie jednym z najszybszych sposobów osiągnięcia tego.
To, co myślę, że może być również możliwe, to if {[string index $string 1] == "#"}
, ponieważ może zawierać * ciąg == "#", który prawdopodobnie będzie również bardzo szybki.
Co myślisz?
Podczas gdy 'string compare -length' kończy się na używaniu odpowiednika' strncmp() ', musi być bardziej ostrożny niż możesz sobie wyobrazić, ponieważ Tcl używa znaków Unicode, a nie ASCII _ i_ NUL jest postacią prawną w Tcl strunowy. –