Примитивный тип данных Tcl — строка, и часто мы можем найти кавычки на Tcl как язык только для строк. Эти строки могут содержать буквенно-цифровые символы, только цифры, логические или даже двоичные данные. Tcl использует 16-битные символы Unicode, а буквенно-цифровые символы могут содержать буквы, включая нелатинские символы, цифры или знаки пунктуации.
Логическое значение может быть представлено как 1, да или истина для истины и 0, нет или ложь для ложного.
Строковые представления
В отличие от других языков, в Tcl вам не нужно включать двойные кавычки, когда это всего лишь одно слово. Примером может быть —
#!/usr/bin/tclsh set myVariable hello puts $myVariable
Когда приведенный выше код выполняется, он дает следующий результат —
hello
Когда мы хотим представить несколько строк, мы можем использовать либо двойные кавычки, либо фигурные скобки. Это показано ниже —
#!/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-последовательности:
#!/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 приведены ниже.
Сравнение строк
#!/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'.
Индекс строки
#!/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
Длина строки
#!/usr/bin/tclsh set s1 "Hello World" puts "Length of string s1" puts [string length $s1]
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Length of string s1 11
Обработка дел
#!/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
Обрезка персонажей
#!/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
Соответствующие строки
#!/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]
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Matching pattern s2 in s1 1 Matching pattern tcl in s1 0
Добавить команду
#!/usr/bin/tclsh set s1 "Hello" append s1 " World" puts $s1
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Hello World
Команда форматирования
В следующей таблице приведен список спецификаторов формата, доступных в Tcl.
Тендерный | использование |
---|---|
% s | Строковое представление |
% d | Целочисленное представление |
% е | Представление с плавающей точкой |
% е | Представление с плавающей точкой в мантиссе-показательной форме |
%Икс | Гекса десятичное представление |
Некоторые простые примеры приведены ниже —
#!/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
Команда сканирования
Команда сканирования используется для анализа строки на основе спецификатора формата. Некоторые примеры приведены ниже.
#!/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]
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —