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:




Kapcsolódó cikkek