Учебники

Tcl — Струны

Примитивный тип данных Tcl — строка, и часто мы можем найти кавычки на Tcl как язык только для строк. Эти строки могут содержать буквенно-цифровые символы, только цифры, логические или даже двоичные данные. Tcl использует 16-битные символы Unicode, а буквенно-цифровые символы могут содержать буквы, включая нелатинские символы, цифры или знаки пунктуации.

Логическое значение может быть представлено как 1, да или истина для истины и 0, нет или ложь для ложного.

Строковые представления

В отличие от других языков, в Tcl вам не нужно включать двойные кавычки, когда это всего лишь одно слово. Примером может быть —

Live Demo

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Когда приведенный выше код выполняется, он дает следующий результат —

hello

Когда мы хотим представить несколько строк, мы можем использовать либо двойные кавычки, либо фигурные скобки. Это показано ниже —

Live Demo

#!/usr/bin/tclsh

set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable

Когда приведенный выше код выполняется, он дает следующий результат —

hello world
hello world

Последовательность выхода из строки

Символьный литерал может быть простым символом (например, «x»), escape-последовательностью (например, «\ t») или универсальным символом (например, «\ u02C0»).

В Tcl есть определенные символы, когда им предшествует обратная косая черта, они будут иметь особое значение и использоваться для представления, например, новой строки (\ n) или табуляции (\ t). Здесь у вас есть список некоторых из таких кодов escape-последовательностей —

Последовательность побега Имея в виду
\\ \ персонаж
‘ персонаж
» персонаж
\? ? персонаж
\ а Оповещение или звонок
\ б возврат на одну позицию
\ е Форма подачи
\ п Новая линия
Возврат каретки
\ т Горизонтальная вкладка
\ v Вертикальная вкладка

Ниже приведен пример, показывающий несколько символов escape-последовательности:

Live Demo

#!/usr/bin/tclsh

puts "Hello\tWorld\n\nTutorialspoint";

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Hello   World

Tutorialspoint

Строковая команда

Список подкоманд для строковых команд приведен в следующей таблице:

Sr.No. Методы и описание
1

сравнить строку1 строку2

Сравнивает строку1 и строку2 лексографически. Возвращает 0, если равно, -1, если строка1 предшествует строке2, иначе 1.

2

первая строка1 строка2

Возвращает индекс первого появления строки1 в строке2. Если не найден, возвращает -1.

3

индексная строка

Возвращает символ по индексу.

4

последняя строка1 строка2

Возвращает индекс последнего вхождения string1 в string2. Если не найден, возвращает -1.

5

длина строки

Возвращает длину строки.

6

строка соответствия шаблона

Возвращает 1, если строка соответствует шаблону.

7

строка диапазона index1 index2

Вернуть диапазон символов в строке от index1 до index2.

8

гирлянда

Возвращает строчную строку.

9

струна тупер

Возвращает заглавную строку.

10

обрезать строку?

Удаляет триммерные символы в обоих концах строки. Триммерными символами по умолчанию является пробел.

11

триммерная строка?

Удаляет символы в левом начале строки. Триммерными символами по умолчанию является пробел.

12

аккуратная строка?

Удаляет триммерные символы в левом конце строки. Триммерными символами по умолчанию является пробел.

13

индекс поиска строки

Возвращает индекс в строке поиска символа после слова, содержащего символ в индексе.

14

поиск слов

Возвращает индекс в строке поиска первого символа в слове, содержащем символ в индексе.

сравнить строку1 строку2

Сравнивает строку1 и строку2 лексографически. Возвращает 0, если равно, -1, если строка1 предшествует строке2, иначе 1.

первая строка1 строка2

Возвращает индекс первого появления строки1 в строке2. Если не найден, возвращает -1.

индексная строка

Возвращает символ по индексу.

последняя строка1 строка2

Возвращает индекс последнего вхождения string1 в string2. Если не найден, возвращает -1.

длина строки

Возвращает длину строки.

строка соответствия шаблона

Возвращает 1, если строка соответствует шаблону.

строка диапазона index1 index2

Вернуть диапазон символов в строке от index1 до index2.

гирлянда

Возвращает строчную строку.

струна тупер

Возвращает заглавную строку.

обрезать строку?

Удаляет триммерные символы в обоих концах строки. Триммерными символами по умолчанию является пробел.

триммерная строка?

Удаляет символы в левом начале строки. Триммерными символами по умолчанию является пробел.

аккуратная строка?

Удаляет триммерные символы в левом конце строки. Триммерными символами по умолчанию является пробел.

индекс поиска строки

Возвращает индекс в строке поиска символа после слова, содержащего символ в индексе.

поиск слов

Возвращает индекс в строке поиска первого символа в слове, содержащем символ в индексе.

Примеры некоторых часто используемых подкоманд Tcl string приведены ниже.

Сравнение строк

Live Demo

#!/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\'.";
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

-1
String 's1' comes before 's2'.
String 's2' comes after 's1'.

Индекс строки

Live Demo

#!/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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

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

Длина строки

Live Demo

#!/usr/bin/tclsh

set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Length of string s1
11

Обработка дел

Live Demo

#!/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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world

Обрезка персонажей

Live Demo

#!/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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Trim right World in Hello World
Hello 
Trim left Hello in Hello World
 World
Trim characters s1 on both sides of s2
Hello World

Соответствующие строки

Live Demo

#!/usr/bin/tclsh

set s1 "test@test.com" 
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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Matching pattern s2 in s1
1
Matching pattern tcl in s1
0

Добавить команду

Live Demo

#!/usr/bin/tclsh

set s1 "Hello" 
append s1 " World"
puts $s1

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Hello World

Команда форматирования

В следующей таблице приведен список спецификаторов формата, доступных в Tcl.

Тендерный использование
% s Строковое представление
% d Целочисленное представление
% е Представление с плавающей точкой
% е Представление с плавающей точкой в ​​мантиссе-показательной форме
%Икс Гекса десятичное представление

Некоторые простые примеры приведены ниже —

Live Demo

#!/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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

43.500000
4.350000e+01
4 tuts
Tcl Language
28

Команда сканирования

Команда сканирования используется для анализа строки на основе спецификатора формата. Некоторые примеры приведены ниже.

Live Demo

#!/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]

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —