A szimbólumok és sorok
Eddig csak dolgozott számszerű adatok egészének, valamint érvényes. De nagyon gyakran (ha nem tisztán tudományos számításokat) működik szöveges információ. A betegtájékoztató tartalmazza az alapvető információkat, hogyan kell dolgozni szimbólumok és szövegek.
Karakter típusa char
Minden szöveg áll karaktereket. A szimbólum - egy bizonyos ikon képet. Egy és ugyanazon szimbólum beírható különböző módokon, például két ember különböző írási kézzel az „A” betű, és még a számítógép képviselete Ugyanebben a levélben fogja eltérő, ha kijelző különböző betűtípusokat, attól még nem lesz az azonos jellegű. Ez fordítva is igaz: a különböző szimbólumok írhatók ugyanúgy, például, itt van két különböző betű, egy - latin ábécé, a másik - orosz: „A” és „A”. Annak ellenére, hogy ugyanúgy néz ki, ez sokkal kényelmesebb, hogy tekintsük őket különböző karakter.
Ily módon az eljárás tárolására szöveges információt a számítógép nem kapcsolódik közvetlenül a kép a szövegben. Ehelyett karakterek vannak tárolva a szobákban - numerikus kódok, de úgy néz ki, mint a karakter a kódszámot a képernyőn attól függ, milyen betűtípust használ, hogy megjelenítse a karaktereket. Ugyanakkor, persze, kellett volna megegyezni egységes eljárás karakterkódolás numerikus kód, vagy szöveg rögzített számítógép nem olvasható egy másik számítógépen.
Kezdetben által elfogadott kódoló egyetlen karakter vesz egy bájt, azaz 8 bit információt. Így lehetővé vált, hogy kódolni 256 különböző értéket, vagyis 256 különböző karakter lehet írásban a szövegben. Ez elég ahhoz, hogy megjelenjen az összes karakter a latin ábécé, számok, írásjelek, és néhány más karakter. Normál jelzi, hogy melyik numerikus kódok megfelelnek az, amelyben a főszereplők, az úgynevezett ASCII. Az ASCII táblázat tartalmazza kódú karakterek 0-127, hogy van, ASCII - egy hét bites kódot. Itt az ASCII táblázat:
Ugyanakkor kódú karakterek kevesebb, mint 32 - egy speciális vezérlő karakter, amely nem jelenik meg a képernyőn. Például ahhoz, hogy jelölje meg a sor végére egy Linux rendszer segítségével egyetlen karakter 10-es kód, és a Windows rendszer - két egymást követő karakter kódok 13 és 10 kódú karakterek 48-57 felel meg felkutatását arab számokkal (megjegyzés szimbólum kód 0 - nem egy szimbólum, amely megjelenik a képernyőn, mint a „0”), kódú karakterek 65-90 - nagybetűk a latin ábécé, mintha hozzá a kód 32, akkor megkapjuk a kisbetűk a latin ábécé. Az intervallumok között ezek a határok írásjelek, matematikai műveletek és egyéb karaktereket.
Mi csak akkor fog működni ASCII karaktereket, tehát csak egy byte-tal egyetlen karaktert.
A C ++, használja az adatok típusát char tárolni egy byte-os karaktereket. Char típusú változó lehet tekinteni két módon: egész számként, elfoglaló 1 bájt és képes fogadni egy értéket -128 127 (typ. Jelzett karakter is előjel nélküli módosítása unsigned char vesz értékek 0 és 255 között), és egyetlen karaktert szöveg. Önmagában a meghatározása char lehet aláírva és jelöletlen függően az operációs rendszer és a fordító. Ezért használja a char típus nem ajánlott, akkor jobb, ha egyértelműen meg kell határozni lesz mérföldkő (aláírt) vagy unsigned (előjel nélküli).
Mint egész, az adattípus char összeadni, kivonni, szorozni, osztani, sőt. De ha a szorzás és osztás általában értelmetlen, akkor az összeadás és kivonás elég értelmes. Például, ha a szimbólum „A” add 1, akkor megkapjuk az „B” jellegű. és ha levonjuk 1, megkapjuk a „@” karaktert. Azaz, az alábbi kódrészletet a képernyőn megjelenik a levél B.
Ez a példa azt mutatja, hogy a változó típusú char lehet rendelni az értéke egyenlő az ASCII kódok, ha ezek a karakterek idézőjelbe. Ie „A” rekordot fog egyezni a karaktert, vagy ASCII kódban A. 65.
Szintén ebben a példában ez azt mutatja, hogy ha megjelenítő változó típusú char, látni fogjuk, ez a szimbólum kép. Honnan tudod, hogy a karakter ASCII-kódját érték? Nem kell tudni, maga a jelkép - ez az ASCII-kódját. És hogyan jelenítse meg? Ez nagyon egyszerű - meg kell alakítani egy char érték az értéke int típusú. Például így:
írja be a zárójelek közé írt, mielőtt az érték, ez a konverziós érték az üzemeltető a meghatározott típusú.
Hasonlóképpen, amikor olvasás char típusú változó átáramló cout. A bemenetet olvasni egy karaktert, a változó lesz az értéke egyenlő a ASCII-kódját. Például, ha írsz egy programot, amely tartalmazza a sor
futtatni, adja meg a karakter egy (! nélkül idézőjelek között) a c változó lesz írva le az értéke 65 - ASCII karakteres kódot A.
A változó típusú char lehet egyértelműen és hozzárendelni a numerikus értékeket. Például megteheti:
Ez a program megjeleníti a két sort: „A 65” és "
126”, azaz a karakterek ASCII-kód 65 (A) és 126 (
) Magukat ASCII-kódokat.
Rendezzük egymás karakterenként olvas minden bemenet használható a while ciklus.
Ebben a példában a program beolvassa a karakter-beviteli folyamba (alapértelmezett - billentyű), amíg eléri a fájl végét. Elmondani, hogy a program input befejezését, ha írja a billentyűzeten a Ctrl-d gombokkal Linux rendszeren, és a Ctrl-z egy Windows rendszerrel.
Ez a program az olvasás adatokat figyelmen kívül hagyja határoló karakterek: szóköz, újsor karakterre és a lapok. Ha szeretné, hogy a c változó beolvassa az összes karakter, beleértve a határoló, szükséges, hogy adja meg a cin patak manipulátor noskipws beállítani az utasításokat:
Vonósok a C ++
Szöveget - egy karaktersorozat. Mivel a karakter a string vannak számozva, a természetes ábrázolás a sorban lenne egy sor karakter. Tehát vonósok és nyelve a C - A string tömb karakterek, és jelzi a sor végére használható szimbólumok ASCII-kód 0, ami lehetővé teszi, hogy tárolja a változó hosszúságú sorok (azaz egy tömb char [n] tárolható húrok bármilyen hossza nem haladja meg . N-1 Ez a módszer tárolására húrok szült számos kellemetlenséget: bármilyen karakterlánc már korlátozza a hossza a tömb méretét, és kiszámítani a hosszát a húr szükséges volt, hogy menjen át a teljes vonalat, amíg a nulla szimbólum, vagyis a meghatározása a vonal hossza szükséges műveletek száma arányos ionalnoe ilyen hosszúságú.
A C ++, hogy képviselje a vonalak van egy tökéletes típusú adatsorból. amelynek alapja az azonos tömb karakter végződő null karakter, de tartalmaz számos további funkciókat. Együttműködik a C ++ nyelven húrok kell az elején a program, hogy csatlakoztassa a string típusú leírást. amely ugyanabban a fájlban:
Változó tárolja fonal adatot nyilvánították az alábbiak szerint:
Rendeljen egy string változót állandó értéket a következők lehetnek:
A rekord vonalak a szövegben a program idézőjelben már találkoztunk, amikor szöveges kimenetet áram cout. Felhívjuk figyelmét - a char állandókat írva aposztrófok és vonalak - idézőjelek. Különösen az „A” - egy szimbólum, és az „A” - egy sor egy karaktert. Ezért char típusú változó lehet értéket rendelni az „A”. mert inkompatibilis adattípusok.
Tény, hogy egy változó típusú string tömb karakter minden egyes karakter a string lehet futtatni külön hivatkozva rájuk index, mint egy tömb. Például:
Annak megállapításához, a hossza a húr méretét () módszer. alkalmazzák a vonalat. Ez adja vissza egy egész - a karakterek számát soronként. Ezt fel lehet használni a következők szerint:
Először is, szükségünk van két műveletet húrok: Két további vonalak és méretének megváltoztatásával a húr.
Alapműveletben a sorok - hozzáadásával, például úgy, hogy a vonalak „Hello”, és „a világ!” kap a "Hello, world!". Egy ilyen művelet a összefűzése szálakat.
Itt egy példa segítségével szövegösszefűzés:
Újabb lépés - váltás vonal méretét. Erre a célra átméretezése módszer. vezetett be, amelyet a sorban. Mi átméretezése módszer két bejegyzés alkotnak: egy vagy két paramétert. Ha egy paramétert, a paraméter hosszát az új vonalat. Például így:
A második paraméter meghatározza az eljárás átméretezés szimbólum, amely a sztring karaktereinek tele lesz, ha a vonal mérete növekszik eredményeként átméretezés. Például:
Amikor elolvasta a sorokat a bemenetet olvasni az összes szimbólumot kivéve határoló (szóköz, tab és új vonalak), amelyek a határokat a sorok között. Például, ha amikor a következő programot
írja be a szöveget „Mama szappan frame” (akárhány szóköz a szavak között), akkor a string „anya” van írva, hogy a tömb S1. Az S2 - a „szappan”. S3 - "keret".
Ezért szervezni az olvasó minden szava a fájl, az alábbiak szerint:
Ha szeretné, hogy a vonal az összes helyet, akkor kell használni a getline függvény az alábbiak szerint:
Ebben az esetben, amikor futtatja a programot, és adja meg a string „Mom szappan frame”. akkor ez az érték lesz hozzárendelve a sorban, és S. Elismerik a teljes bemeneti adatfolyam sorok az alábbi kódot: