Húr - ez
A memóriában tárolt
Néhány programozási nyelvek korlátozhatja a maximális hossza a vonal, de a legtöbb ilyen korlátozások nem nyelv. Unicode használata esetén minden karakterlánc típusú megkövetelheti két vagy akár négy bájt a bemutatót.
A fő probléma a gép ábrázolása egy string típusú:
- vonalak lehetnek kellően jelentős méretű (akár több tíz megabájt);
- időben változó méretű - vannak nehézségek hozzáadása és eltávolítása a szimbólumok.
Az ábrázolás sor, két alapvetően különböző megközelítéseket számítógép memóriájában.
Bemutatása egy sor karakter
Ebben a megközelítésben a vonal egy sor karakter; ahol a méret a tömb van tárolva egy külön (szolgáltatás) területen. Pascal nyelvű cím. ahol ezt a módszert először végre, ezt a módszert nevezik Pascal szálakat.
Kissé optimalizált kiviteli alakja ennek a módszernek, t. N. format c-cím u (az angol. karakter igazított cím + előjel nélküli szám), használt Forte. Ellentétben Pascal húrok, itt a tömb mérete nem tárolja együtt a húr adatokat és része egy string mutatót.
előnyök
- programot bármikor „tudja”, körülbelül akkora, mint a húr, és a művelet karakterek végére bekerül a másolás és a fogadó sor mérete végzik elég gyorsan;
- string tartalmaz adatot;
- lehetőleg a program szintjén ellenőrizni a kimeneti a határvonal annak feldolgozása;
- gyorsan végezhet műveleteket az űrlap „vevő az N-edik karaktert a sor végére.”
hiányosságokat
- problémák a tárolása és kezelése a karakter bármilyen hosszúságú;
- növeli a tárolás költségét húrok - az értéke „vonal hossza” is zajlik abban az esetben nagyszámú sorban a kis méret jelentősen növelheti a követelményeknek az algoritmus a memóriában;
- korlátozza a maximális méret a húr. A modern programozási nyelvek, ez a korlátozás inkább elméleti, hiszen ez általában akkora, mint egy húr van tárolva 32 bites mező, amely lehetővé teszi a maximális méret a string 4294967295 bájt (4 gigabájt).
„Végső byte” módszerrel
A második módszer az, hogy az „végső byte”. Az egyik lehetséges ábécé szimbólum értékeket (általában egy karaktert 0-ás kód) kerül kiválasztásra az a sor végére jellemző, és a húr van tárolva, bájtok sorozata az elejétől a végéig. Van egy olyan rendszer, amelyben jeleként a sor végére nem szimbólum 0 használnak, és a byte 0xFF (255) vagy a kód szimbólum „$”.
A módszer három név - ASCIIZ (karakterek ASCII nulla megszűnik bájt), a C-húrok (a legelterjedtebb módszer pontosan C) és C módszer string kezelő.
előnyök
- nincs további általános a vonalon (kivéve a végső bájt);
- benyújtásának lehetőségét sor, anélkül, hogy külön adattípus;
- nincs korlátozás a maximális mérete string;
- gazdaságos memória használatára
- történő kinyerésének egyszerűsége utótag karakterlánc;
- lehetséges, hogy egy változó ábécé karakter méret (például UTF-8).
hiányosságokat
- Műveletek előállítására hosszú végrehajtási hosszát és összefűzés;
- az ellenőrzés hiányából az túlmutat a vonal, abban az esetben a kár, hogy a hátsó byte potenciális károsodásának nagy területen memória, ami oda vezethet, hogy kiszámíthatatlan következményekkel - adatvesztés, programok, és még az összeomlás az egész rendszer;
- Az képtelenség, hogy használja a végső karakter bájt a vonal elemet.
Mindkét módszerrel
A nyelvek, mint például Oberon. vonal kerül egy tömb egy specifikus hosszúságú karakterekből végével jelöli egy null karakter. Alapértelmezésben az egész tömb tele van null karakter. Ez a módszer lehetővé teszi, hogy összekapcsolják számos előnye mindkét megközelítés, és hogy elkerüljék a legtöbb a hiányosságokat.
Végrehajtása programozási nyelvek
- Az első programozási nyelvek nem volt string típusú; programozó maga is építeni funkcióval rendelkezik húrok egyik vagy másik típus.
- A C használt C string kezelő teljes kézi vezérlés a programozó.
- A szabványos Pascal sztring jelenik meg, mint egy sor 256 bájt; első byte tárolt vonal hossza, a test tartják a többit. Így a vonal hossza nem haladhatja meg a 255 szimbólumokat. A Borland Pascal 7.0 is megjelent vonal „a la C” - nyilván annak a ténynek köszönhető, hogy a számos támogatott platform tartalmazza a Windows.
- Az Object Pascal és a vonal STL a „fekete doboz”, amelyben az allokációs / kiadás a memória automatikusan - anélkül, hogy a programozó. Amikor létrehoz egy sor memóriát automatikusan; amint a vonal nem lesz referencia memória vissza a rendszerbe. A módszer előnye, hogy a programozó nem gondol a munka vonalak. Másrészt, a programozó nem rendelkezik elegendő felett a programok működésének kritikus területeken a sebesség; Szintén nehéz rájött távvezetékek, mint a paraméter a DLL. Object Pascal automatikusan biztosítja, hogy egy szimbólum a kódot a végén a szöveg 0. Ezért, ha a funkció megkívánja a C string kezelő bemenet. átalakítani csak meg kell írni PAnsiChar (strokovaya_peremennaya) vagy PWideChar (strokovaya_peremennaya) (Pascal), .c_str () változó (Builder / STL).
- C # és más nyelveken a szemétgyűjtő húr megváltoztathatatlan; Ha módosítani kell a húr, egy másik objektumot hozunk létre. Ez a módszer lassú és rengeteg átmeneti emlékezetkiesés, de jól illeszkedik a koncepció szemétgyűjtő. A módszer előnye, hogy a feladat zajlik, gyorsan és a párhuzamos vonalak. Szintén van némi kézi vezérlését az építési tételek (például egy Java keresztül StringBuffer osztályban.) - ez csökkenti a csapadékot és a memória felszabadulását, és ennek megfelelően növeli a sebességet.
- megszerzése egy karaktert helyzetben (index) - a legtöbb nyelven egy triviális művelet;
- konkatenáció (kapcsolat) vonalak.
- Első alsztringjeként indexek elején és végén;
- ellenőrzése előfordulása egy húr a másikra (keresni al-string);
- ellenőrzése véletlen vonalak (beleértve a kis- és nagybetűk nem vagy);
- megszerzése vonal hosszát;
- Csere részkarakterláncként.
- konvolúció;
- megjeleníteni egy listát a másikra;
- szűrési feltételek listája.
- A minimális nem nadstroki tartalmazó összes ilyen vonalak;
- keresni két tömb sor egybeesik szekvenciákat (a probléma a plágium).
- összehasonlítjuk a közelsége az említett vonalak által egy előre meghatározott kritériumnak;
- meghatározása nyelv és szöveges kódolás alapján valószínűsége szimbólumok és szótagokat.
Ábrázolása egy karaktersorozatot
Egészen a közelmúltig, az egyik karakter mindig kódolva egy byte (8 bit bináris és a kódolást alkalmazzák 7 bit per karakter), amely lehetővé teszi, hogy képviselje 256 (128 hét bites kódolás) lehetséges értékeit. Azonban a high-grade képviselete a ábécék több nyelv szimbólum (többnyelvű dokumentumok, nyomtatás karakter - .. Többféle idézetek csipetnyi többféle terek és szövegek írásra hieroglifák nyelvek -. Kínai japán és koreai) 256 karakter nem elég. Számos módszer létezik, hogy megoldja ezt a problémát:
Lásd, amit a „String” más szótárak:
Adat típus - (kifejezés előfordul ilyen jellegű adatok) alapkoncepciója az elmélet programozás. Az adatok típusa határozza meg egy értékrend, egy sor művelet, amelyet alkalmazni lehet, hogy ezeket az értékeket, és talán egy módja a tárolás érték és ... ... Wikipedia
Primitív típus - Primitive (beépített, alap) típusú adatok típusát, amelyet a programozási nyelv épült alapegységekkel nyelvet. Attól függően, hogy a nyelv és annak végrehajtására, egy sor ilyen típusú nagymértékben változhat. Ez határozza meg, ... ... Wikipedia
Logikai - Ahogy Bool technikai okok átirányítja itt. Mintegy Bool itt olvasható: stdbool.h. Logikus, logikai (Eng. Logikai vagy logikai adattípus) adattípus egy primitív adattípusok számítástechnika, amely akár két lehetséges ... Wikipedia
Egész szám (adattípus) - Egy egész egész adattípus (angol egy egész szám.) A számítástechnikában az egyik legegyszerűbb és leggyakoribb adattípusok programozási nyelvek. Arra használják, hogy egész számokat. A számsor az ilyen típusú ... ... Wikipedia
A legmagasabb típus - (top típus) típusú elmélet, gyakran nevezik a felső vagy a „fix” szimbólum (⊤), univerzális típus, vagyis olyan típusú, amely tartalmaz minden lehetséges tárgyat a megfelelő típusú rendszer. A legmagasabb típusú nevezik ... ... Wikipedia
Algebrai adattípus - az elmélet programozási bármilyen típusú, amelyek értéke az értékek néhány más típusú „csomagolt” a tervezők algebrai típusát. Más szóval, az algebrai adattípus egy sor típus konstruktőrök, amelyek mindegyike ... ... Wikipedia
A szett (adattípus) - Ez a kifejezés, vannak más célra, lásd a set (érték) .. A szett típusa és az adatstruktúra a számítástechnikában, egy megvalósítása egy matematikai objektum készletet. Adathalmaz típus képes tárolni korlátozott számú értékek ... ... Wikipedia
Logikai - A logikai (Boolean) adattípus egy primitív adattípus számítógép, amely lehet, hogy két lehetséges érték, néha az igazság és a hazugság. Jelen van a legtöbb programozási nyelvek, mint önálló entitás vagy ... Wikipedia