Tengo una cadena, y quiero comprobar si comienza con un cierto carácter (# en este caso). Me gustaría saber la forma más eficiente de hacerlo.¿Cuál es la forma más eficiente de verificar si una cadena comienza con un cierto carácter en TCL?
Lo que estoy pensando es if {[string compare -length 1 $string "#"]}
, porque podría usar strcmp() que probablemente sea una de las formas más rápidas de lograr esto.
Lo que creo que también es posible es if {[string index $string 1] == "#"}
, porque podría hacer * string == '#', que probablemente también sea muy rápido.
¿Qué opinas?
Mientras 'string compare -length' termina usando el equivalente de' strncmp() ', tiene que ser más cuidadoso de lo que imagina porque Tcl usa caracteres Unicode y no ASCII _and_ NUL es un carácter legal en un Tcl cuerda. –