Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
C/C++
Řetězce v C++
24. května 2001, 00.00 | V tomto článku si ukážeme jak pracovat s řetězci v C++. V C++ existuje třída string, se kterou se pracuje mnohem pohodlněji, než s polem znaků, jako v jazyce C.
V tomto článku si ukážeme jak pracovat s řetězci v C++. V jazyce C je řetězec pole znaků a jako s polem se s ním musí pracovat. Některé pomocné funkce pro práci s řetězci jsou v hlavičkovém souboru string.h . V C++ je situace jiná. Standardní knihovna C++ obsahuje parametrizovanou třídu (šablonu) string. Něco o šablonách si povíme později.
Práce s šablonou string je velice snadná. O šablonách nemusíme vědět nic, abychom mohli se stringem pracovat jako s jakýmkoliv jiným datovým typem (třídou). Práce s těmito řetězci je velice podobná práci s řetězci v jiných vyšších programovacích jazycích. String má mimo jiné přetíženy operátory == a != pro porovnávání řetězců, operátor = pro přirovnání, operátory +, += pro spojení řetězců. U tohoto řetězce se nemusíme starat o jeho velikost. Řetězec se automaticky zvětší vždy, kdy je to potřeba. Pro string jsou také přetíženy operátory << a >> pro vstup a výstup z (do) datových proudů.
Třída string je deklarována v hlavičkovém souboru string. Ještě než ukážu první příklad chtěl bych trochu podrobněji rozvést, co vlastně musím pomocí include vložit. V souboru string.h jsou deklarace funkcí pro práci s polem znaků z jazyka C. Jsem přesvědčen, že budete-li používat třídu string, nebudete tyto funkce potřebovat. V souboru string je deklarace šablony string. Chcete-li pracovat i s šablonou string, i s funkcemi pro pole znaků, musíte vložit oba hlavičkové soubory. Nyní už jednoduchý příklad.
|
Metoda length vrací velikost řetězce. Metoda c_str() vrací konstantní pole znaků. Tato metoda slouží pro kompatibilitu se starými řetězci z jazyka C. Nemusíte se tedy bát používat string. Budete-li někde potřebovat pole znaků, pomůžete si "konverzní" metodou c_str().
Závěrem bych ještě chtěl jen dodat, že některé starší překladače nemusejí string znát, u jiných překladačů sice string je, ale jmenuje se jinak. Například Borland C++ Builder 1 má tuto třídu pod názvem AnsiString.
Tolik tedy k řetězcům v C++. Příště se podíváme na vyjímky v C++. Na klíčové slova catch, try, throw a vše, co s vyjímkami souvisí.
Obsah seriálu (více o seriálu):
- Základy OOP v C++: Od C k C++
- Základní pojmy objektově orientovaného programování
- Vytváření tříd, instance třídy, zasílání zpráv v C++
- Vytváření instancí - konstruktory, destruktory
- Kopírovací konstruktor v C++
- Jednoduchá dědičnost v C++
- Časná versus pozdní vazba - úvod do polymorfismu v C++
- Polymorfismus - dokončení
- Vícenásobná dědičnost v C++
- Vícenásobná dědičnost v C++ - opakovaná dědičnost
- Vícenásobná dědičnost v C++ - volání konstruktorů a destruktorů
- Přetěžování operátorů v C++ 1.díl
- Přetěžování operátorů v C++ 2. díl
- Vstupní a výstupní operace pomocí datových proudů v C++
- Přetěžování operátorů << a >> pro datové proudy v C++
- Neformátovaný vstup a výstup v C++
- Paměťové proudy v C++
- Prostory jmen v C++
- Řetězce v C++
- Výjimky v C++
- Výjimky v C++ - výjimky tvoří dědičnou hierarchii
- Výjimky v C++ - dokončení
- Dynamická identifikace typů v C++
- Přetypování v C++
- Problémy s typy při vícenásobné dědičnosti
- Šablony funkcí v C++
- Šablony datových typů v C++
- Vnitřní typy u parametrů šablon, vnořené šablony v C++
- Pole s libovolným intervalem indexování v C++
- Datové kontejnery v C++ - Úvod do STL
- Vector - datový kontejner v C++
- Iterátory v C++
- Šablona vector v C++ a iterátory
- Asociativní pole v C++
- Množina v C++
- Funkční objekty v C++
- Standardní funkční objekty v C++
- Úvod do standardních algoritmů v C++
- Kopírovací a přesouvací algoritmy v C++
- Vyhledávací algoritmy v C++
- Skenovací (prohlížecí) algoritmy v C++
- Transformační algoritmy v C++
- Řadící algoritmy v C++
- Halda v C++
- Standardní algoritmy v C++ - dokončení
- Automatické ukazatele v C++
- Inteligentní ukazatel - čítač referencí v C++
- Použití čítače referencí v C++
- Kopírování velkých objektů v C++
- Řízené kopírování prvků v poli v C++
- Dokončení seriálu objektově orientované programování v C++
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007