Textový řetězec


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

V teorii formálních jazyků používané v matematické informatice, matematické logice a matematické lingvistice je řetězec konečná posloupnost symbolů patřících do určité konečné množiny nazývané abeceda.

Obsah

Typy textového řetězce


Fyzická implementace textového řetězce


Definice řetězce v programu


V nízkoúrovňových jazycích typu C se musí každý řetězec definovat jako datový typ pole znaků (char[]). Každý takový řetězec musí být ukončen znakem '\0', který se nepočítá do délky řetězce. Příklad definice prázdného řetězce o délce 100 znaků:

char retezec[100]; // Pozor - implicitně vynulováno jen u globální proměnné, jinak přidejte = "";

Dále je možné do řetězce rovnou fyzicky dosadit jednotlivé znaky (inicializovat pole znaků); to se dělá pomocí uvozovek:

char retezec[100] = "nejaky, max 99 osmibitovych znaku dlouhy retezec, bla, bla, bla, ...";

Také je možné používat řetězcové literály (konstanty, které nelze přepisovat):

char *ukazatel_na_retezec = "nejaky, libovolne dlouhy retezec, bla, bla, bla, ...";

Jazyk C neumí žádné další operace s řetězci – musí se volat funkce, které jsou součástí standardních knihoven.

V některých ostatních jazycích není nutné uvádět, že se jedná o řetězec a jak je dlouhý. Stačí jednoduše definovat proměnnou.

Příklad z jazyka PHP:

<?php
$retezec = "Já jsem nějaký řetězec a můžu obsahovat všemožné znaky z ASCII tabulky jako %, =, ' a jiné, ale třeba i z tabulky UNICODE (např. ▒, ☼, ♪). Můžu mít libovolnou velikost a jsem reprezentován dynamicky, podle velikosti paměti.";

Vnitřní implementace řetězce v PHP (a i v mnoha dalších dynamicky typovaných jazycích) funguje tak, že se nejprve vytvoří pole znaků základní délky podle obsahu řetězce, které se případně dynamicky rozšíří podle potřeby.[1] Takto lze libovolně do řetězce přidávat další obsah. Velikost vyhrazené paměti pro řetězec bude vždy mocnina dvojky.

Tisk řetězce


V nízkoúrovňových jazycích se řetězec tiskne voláním funkce (puts, printf, fprintf), v aplikovaných jazycích (např. PHP) lze volat jen jako dynamická proměnná.

Tento zápis v jazyce C vypíše obsah řetězce na standardní výstup:

puts(retezec); // vypise retezec

Tento zápis v jazyce C++ vypíše nultý znak (jazyky C i C++ indexují pole od nuly):

cout << retezec[0]; // vypis prvního znaku (jen pro neprazdny retezec)

Celý řetězec lze vypsat v aplikovaných jazycích, např. v PHP:

<?php
echo $retezec; // vypise retezec

Operace s textovým řetězcem


Rozšířené operace

Reference


  1. Zabraná paměť. PHP triky [online]. [cit. 2019-07-02]. Dostupné online . (česky)

Související články


Externí odkazy











Kategorie: Datové typy




Poslední aktualizace: 14.02.2022 02:02:29 CET

Zdroj: Wikipedia (autoři [Dějiny])    licence: CC-BY-SA-3.0

Změny: Všechny obrázky a většina návrhových prvků, které s nimi souvisejí, byly odstraněny. Některé ikony byly nahrazeny FontAwesome-Icons. Některé šablony byly odstraněny (např. „Článek potřebuje rozšíření“) nebo byly přiřazeny (např. „Poznámky“). Třídy CSS byly buď odstraněny, nebo harmonizovány Byly odstraněny konkrétní odkazy na Wikipedii, které nevedou k článku nebo kategorii (jako „Redlinks“, „links to edit page“, „links to portals“). Každý externí odkaz má další obrázek. Kromě několika drobných změn designu byly odstraněny mediální kontejnery, mapy, navigační krabice, mluvené verze a geomikroformáty.

Upozornění Protože daný obsah je v daném okamžiku automaticky převzat z Wikipedie, ruční ověření bylo a není možné. LinkFang.org proto nezaručuje přesnost a aktuálnost získaného obsahu. Pokud existují informace, které jsou v tuto chvíli chybné nebo mají nepřesné zobrazení, neváhejte a kontaktujte nás: e-mail.
Viz také: Tiráž & Ochrana dat.