Existe un amplio grupo de instrucciones dedicados al manejo de cadenas en el Tcl, en esta sección se ejemplificarán los mas usuales.

Comando string

El comando string cuenta con múltiples funciones, la sintaxis es:

string opción par1 par2 par3 ...

Donde opción es una de las funciones definidas de string, y par1, par2, etc, son los parámetros que requiere esa función; puede ser uno solo o varios de ellos dependiendo de la opción que se indique.

Las opciones básicas del comando string son:

string compare cadena1 cadena2

Compara las cadenas dadas, regresa 0 si son iguales, 1 si cadena2 es subcadena de cadena1, y -1 en cualquier otro caso. Ejemplos:

#!/usr/local/bin/tclsh7.4
  set cadena1 "palabra"
  set cadena2 "palabra"
  set resultado [string compare $cadena1 $cadena2]
  puts stdout $resultado
Muestra en pantalla el valor 0 porque ambas cadenas son iguales.
#!/usr/local/bin/tclsh7.4
  set cadena1 "palabra1"
  set cadena2 "alabra"
  set resultado [string compare $cadena1 $cadena2]
  puts stdout $resultado
Muestra el valor 1 ya que cadena2 es subcadena de cadena1.

string first cadena1 cadena2

Regresa la posición donde se encuentra cadena1 dentro de cadena2, en caso de no ser una subcadena regresa -1. La primera posición en una cadena se denota con el número 0, ejemplo:

#!/usr/local/bin/tclsh7.4
  set cadena1 "palabra"
  set cadena2 "Posicion de la palabra"
  set resultado [string first $cadena1 $cadena2]
  puts stdout $resultado
En la variable resultado se guarda el valor 15, que es la posición de "palabra" dentro de la oración "Posicion de la palabra".

string index cad1 pos

Regresa el caracter de la cadena cad1 colocado en la posición indicada por pos. Ejemplo:

#!/usr/local/bin/tclsh7.4
  set cadena1 "Posicion de la palabra"
  set resultado [string index $cadena1 4]
  puts stdout $resultado
El resultado que muestra en pantalla es "c". Como puede observarse la primera posición siempre es 0, no 1.

string last cadena1 cadena2

Regresa la posición de la última ocurrencia de cadena1 en cadena2, o -1 en caso de que cadena1 no sea subcadena de cadena2.

string length cadena1

Regresa el número de caracteres que contenga cadena1. Ejemplo:

#!/usr/local/bin/tclsh7.4
  set cadena1 "Prueba de longitud de una cadena"
  set resultado [string length $cadena1]
  puts stdout $resultado
Se visualizará el número 32, que es la cantidad de caracteres que contiene la cadena: "Prueba de longitud de una cadena"

string match patron cadena1

Devuelve 1 si cadena1 es igual a patron, de lo contrario devuelve 0. La función string compare ofrece una mejor forma de comparación de cadenas. Ejemplo:

#!/usr/local/bin/tclsh7.4
  set patron "palabra"
  set cadena2 "palabra"
  set resultado [string match $patron $cadena2]
  puts stdout $resultado

string range cadena1 i j

Devuelve la cadena comprendida entre las posiciones i y j, siendo estos números enteros, la primera posición de una cadena es la posición 0.

string tolower cadena1

Regresa cadena1 en letras minúsculas. Ejemplo:

#!/usr/local/bin/tclsh7.4
  puts stdout "Dame una cadena "
  set cadena [gets stdin]
  puts stdout "La cadena en minusculas es: "
  puts stdout [string tolower $cadena]

string toupper cadena1

Regresa cadena1 en letras mayúsculas. Ejemplo:

#!/usr/local/bin/tclsh7.4
  puts stdout "Dame una cadena "
  set cadena [gets stdin]
  puts stdout "La cadena en mayusculas es: "
  puts stdout [string toupper $cadena]

string trim cadena1 {car}

Elimina de ambos lados de cadena1 los caracteres indicados en {car}, el valor por defecto de {car} es el espacio en blanco, así que si se desean eliminar los espacios en blanco al inicio y al final de la cadena no es necesario escribir el último parámetro.

string trimleft cadena1 {car}

Elimina los caracteres indicados en {car} del lado izquierdo de cadena1. En caso de omitirse el último parámetro se eliminarán los espacios en blanco.

string trimright cadena1 {car}

Elimina los caractres indicados en {car} del lado derecho de cadena1. En caso de omitirse el último parámetro se eliminarán los espacios en blanco. Ejemplo:

#!/usr/local/bin/tclsh7.4

  set cad1 "***Saludos***";
  puts stdout "Cadena original"
  puts stdout $cad1
  puts stdout "Utilizando: trim"
  puts stdout [string trim $cad1 "*"]
  puts stdout "Utilizando: trimleft"
  puts stdout [string trimleft $cad1 "*"]
  puts stdout "Utilizando: trimright"
  puts stdout [string trimright $cad1 "*"]

Comando append

Sintaxis:

append cad1 par1 par2 par3 ...

El comando append agrega los parámetros especificados (par1, par2, etc) a la cadena cad1, dando como resultado la suma de todas las cadenas. Ejemplo:

  set prueba z
  append prueba a b c
  puts stdout $prueba
Salida: zabc
#!/usr/local/bin/tclsh7.4
  set uno 123
  set dos 456
  set hola "Inicio: "
  puts stdout [append "" $hola $uno $dos]