Textový řetězec

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Textový řetězec (string) je v programování název datového typu sloužícího k uložení konečné posloupnosti znaků.

Typy textového řetězce[editovat | editovat zdroj]

  • konstantní – neměnný obsah (generovaný při překladu programu)
  • staticky alokovaný paměťový prostor pro řetězec – řetězec má omezenou max. délku
  • dynamicky alokovaný paměťový prostor pro řetězec – řetězec má max. délku omezenou jen velikostí volné paměti

Fyzická implementace textového řetězce[editovat | editovat zdroj]

  • délka řetězce je definována zarážkou na konci řetězce (např. hodnota 0 na konci řetězce v jazyku C)
  • délka řetězce je uložena v pomocné struktuře definující řetězec – deskriptoru řetězce (např. typ String v Pascalu)

Definice řetězce v programu[editovat | editovat zdroj]

V nízkoúrovňových jazycích typu C se musí každý řetězec definovat jako datový typ char. Příklad definice prázdného řetězce o délce 100 znaků:

char retezec[100];

Dále je možné do řetězce rovnou fyzicky dosadit jednotlivé znaky, to se dělá pomocí znaku uvozovek.

char retezec[100] = "nejaky, jakkoli dlouhy retezec, bla, bla, bla, ... muze obsahovat jen znaky z ASCII tabulky";

V některcýh ostatních jazycích není nutné uvádět, že se jedná o řetězec a jak je dlouhý. Stačí jednoduše zavolat proměnnou. Příklad z jazyka PHP:

<?php

$retezec = "já jsem nějaký řetězec a můžu obsahovat všemožné znaky, dokonce i ty, které nejsou v ASCII tabulce, ale jen v UNICODE. Můžu mít libovolnou velikost a jsem reprezentován dynamicky, podle velikosti paměti.";

?>

Volání řetězce v programu[editovat | editovat zdroj]

V nízkoúrovňových jazycích se řetězec volá po jednotlivých znacích a je zakončen znakem '\0' (podle něj se řídí program a ukončí cyklus čtení), v aplikovaných jazycích (na př. PHP) lze volat jen jako dynamická proměnná.

Tento zápis v jazyce C vypíše nultý znak (počítače číslují od nuly):

cout << retezec[0]; //vypise retezec

Celý řetězec lze přečíst jen v aplikovaných jazycích, na př. v PHP:

<?php

echo $retezec; //vypise retezec

?>

Operace s textovým řetězcem[editovat | editovat zdroj]

  • získání znaku z i-té pozice textového řetězce: s[i]
  • délka textového řetězce |s|
  • spojení textových řetězců (zřetězení, concatenation) s1 + s2
  • konverze velkých abecedních písmen na malá písmena
  • konverze malých abecedních písmen na velká písmena

Rozšířené operace[editovat | editovat zdroj]

  • porovnání obsahu textových řetězců (ordinální nebo lexikální viz znaková sada)
  • vyhledání pozice znaku v textovém řetězci
  • vyhledání pozice podřetězce v textovém řetězci
  • rozdělování řetězce na více řetězců (rozdělení na podřetězce)

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]