Tcl - Cuerdas
El tipo de datos primitivo de Tcl es cadena y, a menudo, podemos encontrar comillas en Tcl como lenguaje de solo cadena. Estas cadenas pueden contener caracteres alfanuméricos, solo números, datos booleanos o incluso binarios. Tcl utiliza caracteres Unicode de 16 bits y los caracteres alfanuméricos pueden contener letras, incluidos caracteres no latinos, números o puntuación.
El valor booleano se puede representar como 1, sí o verdadero para verdadero y 0, no o falso para falso.
Representaciones de cadenas
A diferencia de otros idiomas, en Tcl, no es necesario incluir comillas dobles cuando es una sola palabra. Un ejemplo puede ser:
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
Cuando se ejecuta el código anterior, produce el siguiente resultado:
hello
Cuando queremos representar múltiples cadenas, podemos usar comillas dobles o llaves. Se muestra a continuación:
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable
Cuando se ejecuta el código anterior, produce el siguiente resultado:
hello world
hello world
Secuencia de escape de cadena
Un literal de carácter puede ser un carácter simple (por ejemplo, 'x'), una secuencia de escape (por ejemplo, '\ t') o un carácter universal (por ejemplo, '\ u02C0').
Hay ciertos caracteres en Tcl cuando están precedidos por una barra invertida tendrán un significado especial y se usan para representar como nueva línea (\ n) o tabulación (\ t). Aquí tiene una lista de algunos de esos códigos de secuencia de escape:
Secuencia de escape | Sentido |
---|---|
\\ | \ personaje |
\ ' | ' personaje |
\ " | " personaje |
\? | ? personaje |
\un | Alerta o campana |
\segundo | Retroceso |
\F | Alimentación de formulario |
\norte | Nueva línea |
\ r | Retorno de carro |
\ t | Pestaña horizontal |
\ v | Pestaña vertical |
A continuación se muestra el ejemplo para mostrar algunos caracteres de secuencia de escape:
#!/usr/bin/tclsh
puts "Hello\tWorld\n\nTutorialspoint";
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Hello World
Tutorialspoint
Comando de cadena
La lista de subcomandos para el comando de cadena se enumera en la siguiente tabla:
No Señor. | Métodos y descripción |
---|---|
1 | compare cadena1 cadena2 Compara string1 y string2 lexográficamente. Devuelve 0 si es igual, -1 si cadena1 viene antes de cadena2, de lo contrario 1. |
2 | first cadena1 cadena2 Devuelve la primera aparición del índice de cadena1 en cadena2. Si no se encuentra, devuelve -1. |
3 | index índice de cadena Devuelve el carácter en el índice. |
4 | last cadena1 cadena2 Devuelve el índice de la última aparición de string1 en string2. Si no se encuentra, devuelve -1. |
5 | length cuerda Devuelve la longitud de la cadena. |
6 | match pattern cuerda Devuelve 1 si la cadena coincide con el patrón. |
7 | range cadena index1 index2 Devuelve el rango de caracteres en la cadena de index1 a index2. |
8 | tolower cuerda Devuelve la cadena en minúsculas. |
9 | toupper cuerda Devuelve la cadena en mayúsculas. |
10 | trim cadena? recortar caracteres? Elimina los caracteres de recorte en ambos extremos de la cadena. Los caracteres de recorte predeterminados son los espacios en blanco. |
11 | trimleft cadena? recortar caracteres? Elimina los caracteres de recorte en el principio izquierdo de la cadena. Los caracteres de recorte predeterminados son los espacios en blanco. |
12 | trimright cadena? recortar caracteres? Elimina los caracteres de recorte en el extremo izquierdo de la cadena. Los caracteres de recorte predeterminados son los espacios en blanco. |
13 | wordend índice de la cadena de búsqueda Devuelve el índice en la cadena de búsqueda del carácter después de la palabra que contiene el carácter en el índice. |
14 | wordstart índice de la cadena de búsqueda Devuelve el índice en la cadena de búsqueda del primer carácter de la palabra que contiene el carácter en el índice. |
A continuación se ofrecen ejemplos de algunos subcomandos de cadena Tcl de uso común.
Comparación de cadenas
#!/usr/bin/tclsh
set s1 "Hello"
set s2 "World"
set s3 "World"
puts [string compare $s1 $s2]
if {[string compare $s2 $s3] == 0} {
puts "String \'s1\' and \'s2\' are same.";
}
if {[string compare $s1 $s2] == -1} {
puts "String \'s1\' comes before \'s2\'.";
}
if {[string compare $s2 $s1] == 1} {
puts "String \'s2\' comes after \'s1\'.";
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.
Índice de cadena
#!/usr/bin/tclsh
set s1 "Hello World"
set s2 "o"
puts "First occurrence of $s2 in s1"
puts [string first $s2 $s1]
puts "Character at index 0 in s1"
puts [string index $s1 0]
puts "Last occurrence of $s2 in s1"
puts [string last $s2 $s1]
puts "Word end index in s1"
puts [string wordend $s1 20]
puts "Word start index in s1"
puts [string wordstart $s1 20]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
First occurrence of o in s1
4
Character at index 0 in s1
H
Last occurrence of o in s1
7
Word end index in s1
11
Word start index in s1
6
Longitud de la cadena
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Length of string s1
11
Manejo de casos
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Uppercase string of s1"
puts [string toupper $s1]
puts "Lowercase string of s1"
puts [string tolower $s1]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world
Recorte de caracteres
#!/usr/bin/tclsh
set s1 "Hello World"
set s2 "World"
puts "Trim right $s2 in $s1"
puts [string trimright $s1 $s2]
set s2 "Hello"
puts "Trim left $s2 in $s1"
puts [string trimleft $s1 $s2]
set s1 " Hello World "
set s2 " "
puts "Trim characters s1 on both sides of s2"
puts [string trim $s1 $s2]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Trim right World in Hello World
Hello
Trim left Hello in Hello World
World
Trim characters s1 on both sides of s2
Hello World
Cuerdas a juego
#!/usr/bin/tclsh
set s1 "[email protected]"
set s2 "*@*.com"
puts "Matching pattern s2 in s1"
puts [string match "*@*.com" $s1 ]
puts "Matching pattern tcl in s1"
puts [string match {tcl} $s1]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Matching pattern s2 in s1
1
Matching pattern tcl in s1
0
Agregar comando
#!/usr/bin/tclsh
set s1 "Hello"
append s1 " World"
puts $s1
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Hello World
Comando de formato
La siguiente tabla muestra la lista de especificadores de formato disponibles en Tcl -
Especificador | Utilizar |
---|---|
% s | Representación de cadenas |
%re | Representación entera |
%F | Representación de punto flotante |
%mi | Representación de punto flotante con forma de mantisa-exponente |
%X | Representación decimal hexadecimal |
A continuación se ofrecen algunos ejemplos sencillos:
#!/usr/bin/tclsh
puts [format "%f" 43.5]
puts [format "%e" 43.5]
puts [format "%d %s" 4 tuts]
puts [format "%s" "Tcl Language"]
puts [format "%x" 40]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
43.500000
4.350000e+01
4 tuts
Tcl Language
28
Comando de escaneo
El comando de exploración se utiliza para analizar una cadena según el especificador de formato. Algunos ejemplos se muestran a continuación.
#!/usr/bin/tclsh
puts [scan "90" {%[0-9]} m]
puts [scan "abc" {%[a-z]} m]
puts [scan "abc" {%[A-Z]} m]
puts [scan "ABC" {%[A-Z]} m]
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
1
1
0
1