A programozók Club - - anyagok Delphi - blog archive - 17. lecke

Írta kulcs alapján c / c ++

Karaktersorozatok tárolt információkat, például a fájl nevét, a könyv címét, nevét, a munkavállalók és más karakter kombinációk. A legtöbb program a C ++ széles körben használják karaktersor. Ezután megtudhatja, hogy a C ++ húrok tároljuk a tömbben tipachar végződő NULL karaktert (ASCII vagy 0). Ebben a leckében a karakterláncok tárgyaljuk részletesebben. Meg fogja tanulni, hogyan kell tárolni és kezelni karakterláncok, valamint azt, hogyan kell használni a könyvtár futásidejű hogy manipulálják karaktersor. Végére ez a lecke, megtudhatja az alábbi alapfogalmakat:

C ++ program tárolása tömbként karakterlánc, mint char.Bolshinstvo programokat széles körben alkalmazzák karaktersor. A kísérlet minden benyújtott programot a bemutató, hogy megismerkedjen a karaktersor. Meg fogja találni, hogy a munka karakterláncokat hasonló tömbök leírtak 16. lecke.

C ++ programozók széles körben használják a húrok tárolására felhasználó, fájlnevek, és más jellegű információkat.

Ábra. 17.1. C ++ kezeli egy karakterláncot egy tömb típusú char.

A fő különbség a karakterláncot és más típusú tömbök, mint a C ++ jelzi az utolsó elem a tömb, Mint már tudjuk, a C ++ programot képviseli a végén egy karakterlánc egy NULL karakter, aki ábrázolják, mint egy speciális karaktert „\ 0” C ++. Amikor hozzárendel szimbólumai karaktersor, meg kell tenni a NULL karaktert ( „\ 0”), miután az utolsó karakterhez. Például az alábbi program ábécé. CPP rendel írni tól Z-ig változó ábécé, egy hurok. Ezután hozzáad egy NULL karakter ebben a változó, és megjeleníti azt a cout.

char ábécé [34]; // 33 karakter plusz NULL char írni;
int index;
a (betű = 'A', index = 0; írni <= ‘Я’;
írni ++, index ++) ábécé [index] = írni;
ábécé [index] = NULL;
cout <<«Буквы » <>

Mint látható, a program hozzárendeli a NULL karaktersor, jelezve az utolsó karaktert a szöveg:

Ha a kimeneti áram cout kiad egy karakterlánc, kiadja egy sor karakter, amíg nem találkozik NULL szimbólumot. Röviden, Symbol NULL mondja a program az utolsó karakterhez.

Megjegyzés: a hurok, ami megjelenik az előző program. Mint látható, a ciklus és inicializálja a két változó növekszik (levél, index). Amikor egy hurok inicializálja vagy növeli a változók száma, külön a működési pont (a vessző is C ++ operátor):

a (betű = 'A', index = 0; írni <= ‘Я’; letter++, index++)

C ++ automatikusan hozzáad egy NULL sztring konstansok

Minden létrehozta a programot használja karakterlánc konstansokat zárt idézőjelben, az alábbiak szerint:

„Ez egy szöveg konstans”

Amikor létrehoz egy karakterlánc konstans C ++ fordító automatikusan hozzáad egy NULL karaktert, ábrán látható. 17.2.

Ábra. 17.2. C ++ fordítóprogram automatikusan hozzáad egy NULL karaktert sztring konstansok.

Amikor a program megjeleníti a karakterlánc állandók segítségével a kimeneti stream cout, cout használja a NULL karaktert (amely a fordító növeli a bar), hogy meghatározza a kimenet az utolsó karakter.

A NULL karaktert

Ha egy szöveg konstans idézőjelek, C ++ fordítóprogram automatikusan hozzáadja a NULL karaktert. A legtöbb C ++ függvényeket használja a NULL karaktert, hogy meghatározza az utolsó karaktert a húr.

Következő LOOPNULL.CPP programot kissé megváltoztatja az előző program segítségével a hurok tartalmának megjelenítéséhez a húr:

char ábécé [34]; // 33 karakter plusz NULL char írni;
int index;
a (betű = 'A', index = 0; írni <= ‘Я’; letter++, index++) alphabet[index] = letter;
ábécé [index] = NULL;
az (index = 0; ábécé [index] 1 = NULL; index ++) cout < cout <>

Mint látható, az egy ciklus feltárja a karaktereket a húr. Ha a szimbólum nem NULL (nem az utolsó karakter a string), loop nyomatok szimbólum index növekszik, és a folyamat folytatódik.

Mivel „A” eltér az „A”

Az felülvizsgálata programokat C ++, akkor felel meg a karaktereket zárt aposztróf jelet (például „A”) és a karakterek zárt

Ábra. 17.3. Mivel a C ++ fordító tárolja a karakter konstans „A” és egy sor állandó „A”.

dupla idézőjelek ( "A"). Symbol belül aposztróf jelet egy karakter konstans. C ++ fordító bocsát ki csak egyetlen byte memória egy karakter konstans. Azonban karakter idézőjelek karakterlánc konstans -ukazanny szimbólum közötti NULL (hozzá a fordító). Így a fordító osztja két byte egy karakterlánc. Ábra szemlélteti, hogyan 17.3 C ++ fordító tárolja a karakter konstans „A” és egy sor állandó „A”.

Inicializálása karakterlánc

char cím [64] = "Tanulás programozni C ++ nyelven";

char cím [] = «tanulás program C ++ nyelven";

char cím [64] = "Tanulás programozni C ++ nyelven";
char tanulsága [64] = "karaktersorozatok";
cout <<«Книга: » < cout <<«Урок: » <<lesson <<endl;<br>></p> <p>Néhány program a többi könyv inicializálja karaktersorainak hasonló módon. Vegyünk egy kis időt, hogy kísérletezzenek a program megváltoztatja a karakter az egyes vonalon.</p> <h2>Távvezetékek FÜGGVÉNYÉBEN</h2> <p>Az átviteli függvény a karakterlánc az átviteli bármilyen hasonló tömb paraméterként. Bent a funkció csak meg kell adnia, hogy milyen a tömb (char) és a bal és a jobb oldali zárójelben a tömbben. Nem kell, hogy meghatározza a méret a húr. Például a következő program a SHOW_STR.CPP show_ sztring függvény, hogy megjelenítse a karakterlánc a képernyőn:</p> <p>void show_string (char string [])</p> <p> cout <<string <<endl;<br>></p> <p> show_string ( «Helló, C ++!»);<br> show_string ( «tanulmányi program C ++»);<br>></p> <p>Mint látható, show_string funkció értelmezi a paraméter karakterláncot egy tömb:</p> <p>void show_string (char string [])</p> <p>Mivel a NULL szimbólum azt jelzi, a végén a húr, a funkció nem igényel semmilyen paraméter, amely meghatározza az elemek száma a tömbben. Ehelyett a funkció határozza meg az utolsó elem a tömbben csak találni egy NULL karaktert.</p> <p>Mint azt már tudja a C ++ függvények gyakran használják a NULL karaktert, hogy meghatározza a sor végére. Következő STR_LEN.CPP teremt nevű függvény STRING_LENGTH, aki keres egy NULL karakterhez, hogy meghatározza a karakterek számát tartalmazza a húr. Ezután a függvény visszatérési nyilatkozat, hogy visszatérjen a sor, hogy hívja a funkció hosszát. A program továbbítja különböző karakterláncok a funkció megjeleníti a hossza egyenként őket a képernyőn:</p> <p>int STRING_LENGTH (char string [])</p> <p> int i;<br> for (i = 0 ;! string [] = '\ 0'; i ++); // semmi köze, de megy<br> // a következő karakter visszatérő (i); A vonal hossza<br>></p> <p> char cím [] = «tanulás program C ++ nyelven";<br> char tanulsága [] = «karaktersorozatok";<br> cout <<«Строка » <<title <<» содержит » <<string_length(title) <<» символов» <<endl;<br> cout <<«Строка » <<lesson <<» содержит » <<string_length(lesson) <<» символов» <<endl;<br>></p> <p>Mint látható, a funkció indul az első karakter a string (elem 0), majd megvizsgálja az egyes elemek akár, amíg nem találkozik NULL. Figyelembe véve a program C ++, akkor a találkozás különböző funkciók, amelyek szintén böngészi karakterláncok a keresést egy NULL karaktert.</p> <h2>Előnye, hogy a NULL egy ASCII 0</h2> <p>Mint már tudjuk, NULL karakter az ASCII 0. 7. lecke tanult, hogy a C ++ használja a 0 érték képviseletére hamis. Így mivel a NULL karakter 0, akkor a program egyszerűsítését sok művelet során. Például számos funkciót böngészi húrok karakterenként NULL keresést. A következő lépés a hurok szemlélteti, hogy egy program lehet keresni NULL sorban:</p> <p>az (index = 0; string [index] = NULL ;! index ++)</p> <p>Mivel NULL karakter 0, a program leegyszerűsíti sok ciklus, hogy a keresett NULL, az alábbiak szerint:</p> <p>az (index = 0; string [index]; index ++);</p> <p>Ebben az esetben, amíg a szimbólum szerepel a string [index] nem NULL (0 vagy hamis), a ciklus folytatódik.</p> <h2>A string függvénykönyvtár színpadi</h2> <p>Óráról 11, megtanulta, hogy a legtöbb C ++ fordítók széles körben használható funkciók, az úgynevezett futásidejű könyvtár. Figyelembe véve a futásidejű könyvtár, azt találjuk, hogy tartalmaz egy csomó különböző funkciókat, manipulálni húrok. Például, strupr függvény egy karakterlánc nagybetűs karakterlánc. Hasonlóképpen, strlen függvény karakterek száma soronként. A legtöbb könyvtár futásidejű még olyan funkciókat, amelyek lehetővé teszik, hogy megtekintsük a vonal a keresést egy adott karaktert. Például az alábbi program használatát szemlélteti STRUPR.CPP strupr strlwr funkciók és futásidejű könyvtárak:</p> <p>#include <string.h> // tartalmaz prototípusok<br> // funkciók strupr és strlwr</p> <p>void main (void)<br> char cím [] = «tanulás program C ++ nyelven";<br> char tanulsága [] = «karaktersorozatok";<br> cout <<«Верхний регистр: » <<strupr(title) <<endl;<br> cout <<«Нижний регистр: » <<strlwr(lesson) <<endl;<br>></p> <p>A használata könyvtári funkciók manipulálni húrok mentheti meg a szükséges időt programozás. Válassza ki az időt, hogy nyomtassa ki a fájl fejlécében, hogy meghatározzuk string.h húr képességeivel által támogatott egy könyvtárban a fordító.</p> <p>Meg kell játszani a szabályokat</p> <p>Mint tudod, a legtöbb funkció, hogy manipulálják húrok támaszkodnak NULL karaktert a sor végére. Ha a program van rendelve egy karakterlánc, amelyet győződjön meg arról, hogy adjunk egy NULL karaktert, mint az utolsó karakter a húr. Ha a program nem használja NULL adott esetben a funkciók támaszkodnak a NULL karakter kóbor.</p> <h2>MIT KELL TUDNI</h2> <h2>véletlen cikk</h2> </div> <div class="extra"> <div class="info"><a href="/szakerto-168/hogyan-kell-eladni-egy-halott-capa-12-millio.html">előző</a> ◈ <a href="/szakerto-168/tomegkozlekedes-parizs-informacio-a-turistak.html">a következő</a></div> <div class="clear"></div> </div> </article> </div> </div> </div> </div> <div id="sidebar" class="col-1-3"> <div class="wrap-col"> <div class="box"> <div class="content"> </div> </div> </div> </div> </div> </div> </section> <footer> <div class="wrap-footer pominodiko"> <div class="row"> <div class="col-1-1"> <div class="wrap-col"> <div class="box"> <div class="content"> </div> </div> </div> </div> </div> </div> <div class="copyright"> <h4>Hasznos cikkek</h4> <p> <li><a href="/articles/skyrim-ck-kezdeni.html">Skyrim ck kezdeni</a></li> <li><a href="/szakerto-161/evakualasara-is-es-a-masodik-felvono-allomas.html">Evakuálására is, és a második felvonó állomás</a></li> <li><a href="/szakerto-203/taisiya-szemelyes-elete-ferje-gyermekei-csaladja.html">Taisiya személyes élete, férje, gyermekei, családja</a></li> <li><a href="/articles/hogyan-terjed-a-teto-kezevel-ondulin.html">Hogyan terjed a tető kezével Ondulin</a></li> <li><a href="/articles/miert-nem-hal-meg-fiatalon.html">Miért nem hal meg fiatalon</a></li> <li><a href="/articles/o-kenyszerltett-hogy-valtoztatni-nem-akarom.html">Ő kényszerített, hogy változtatni, nem akarom csinálni</a></li> <li><a href="/szakerto-201/hajfestek-t-lab-premier-noir-paletta-ukran.html">Hajfesték t-lab premier noir (paletta) ukrán vásárlás, ár, vélemények</a></li> </p> <p>Copyright © 2024</p> </div> <script> new Image().src = "https://counter.yadro.ru/hit;adolfru?r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";h"+escape(document.title.substring(0,150))+ ";"+Math.random();</script> </footer></div> </body> </html>