Tcl - Cordes

Le type de données primitif de Tcl est une chaîne et nous pouvons souvent trouver des guillemets sur Tcl en tant que langage de chaîne uniquement. Ces chaînes peuvent contenir des caractères alphanumériques, uniquement des nombres, des booléens ou même des données binaires. Tcl utilise des caractères Unicode 16 bits et les caractères alphanumériques peuvent contenir des lettres, y compris des caractères non latins, des chiffres ou des signes de ponctuation.

La valeur booléenne peut être représentée par 1, yes ou true pour true et 0, no ou false pour false.

Représentations de chaîne

Contrairement à d'autres langues, en Tcl, vous n'avez pas besoin d'inclure des guillemets doubles lorsqu'il ne s'agit que d'un seul mot. Un exemple peut être -

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

hello

Lorsque nous voulons représenter plusieurs chaînes, nous pouvons utiliser des guillemets doubles ou des accolades. Il est montré ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

hello world
hello world

Séquence d'échappement de chaîne

Un littéral de caractère peut être un caractère simple (par exemple, «x»), une séquence d'échappement (par exemple, «\ t») ou un caractère universel (par exemple, «\ u02C0»).

Il y a certains caractères dans Tcl quand ils sont précédés d'une barre oblique inverse, ils auront une signification spéciale et ils sont utilisés pour représenter comme une nouvelle ligne (\ n) ou une tabulation (\ t). Ici, vous avez une liste de certains de ces codes de séquence d'échappement -

Séquence d'échappement Sens
\\ \ personnage
\ ' ' personnage
\ " " personnage
\? ? personnage
\une Alerte ou cloche
\ b Retour arrière
\F Saut de formulaire
\ n Nouvelle ligne
\ r Retour chariot
\ t Onglet horizontal
\ v Onglet vertical

Voici l'exemple pour montrer quelques caractères de séquence d'échappement -

#!/usr/bin/tclsh

puts "Hello\tWorld\n\nTutorialspoint";

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Hello   World

Tutorialspoint

Commande de chaîne

La liste des sous-commandes pour la commande de chaîne est répertoriée dans le tableau suivant -

Sr.No. Méthodes et description
1

compare chaîne1 chaîne2

Compare lexographiquement string1 et string2. Renvoie 0 si égal, -1 si string1 précède string2, sinon 1.

2

first chaîne1 chaîne2

Renvoie la première occurrence d'index de string1 dans string2. S'il n'est pas trouvé, renvoie -1.

3

index index de chaîne

Renvoie le caractère à l'index.

4

last chaîne1 chaîne2

Renvoie la dernière occurrence d'index de string1 dans string2. S'il n'est pas trouvé, renvoie -1.

5

length chaîne

Renvoie la longueur de la chaîne.

6

match pattern chaîne

Renvoie 1 si la chaîne correspond au modèle.

sept

range chaîne index1 index2

Renvoie la plage de caractères dans la chaîne d'index1 à index2.

8

tolower chaîne

Renvoie la chaîne en minuscules.

9

toupper chaîne

Renvoie la chaîne en majuscules.

dix

trim chaîne? trimcharacters?

Supprime les caractères de coupe aux deux extrémités de la chaîne. Les caractères de découpage par défaut sont les espaces.

11

trimleft chaîne? trimcharacters?

Supprime les caractères de découpage au début gauche de la chaîne. Les caractères de découpage par défaut sont les espaces.

12

trimright chaîne? trimcharacters?

Supprime les caractères de coupe à l'extrémité gauche de la chaîne. Les caractères de découpage par défaut sont les espaces.

13

wordend index de chaîne de recherche

Renvoie l'index dans la chaîne de recherche du caractère après le mot contenant le caractère à l'index.

14

wordstart index de chaîne de recherche

Renvoie l'index dans la chaîne de recherche du premier caractère du mot contenant le caractère à l'index.

Des exemples de certaines sous-commandes de chaîne Tcl couramment utilisées sont donnés ci-dessous.

Comparaison des chaînes

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.

Index de la chaîne

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Longueur de chaîne

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Length of string s1
11

Manipulation des cas

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Rognage des caractères

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Chaînes correspondantes

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Ajouter la commande

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Hello World

Commande de format

Le tableau suivant montre la liste des spécificateurs de format disponibles dans Tcl -

Prescripteur Utilisation
% s Représentation de chaîne
%ré Représentation entière
%F Représentation en virgule flottante
% e Représentation en virgule flottante sous forme d'exposant mantisse
%X Représentation hexa décimale

Quelques exemples simples sont donnés ci-dessous -

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

43.500000
4.350000e+01
4 tuts
Tcl Language
28

Commande de scan

La commande Scan est utilisée pour analyser une chaîne basée sur le spécificateur de format. Quelques exemples sont présentés ci-dessous.

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

1
1
0
1