Menü
Ingyenes
becsekkolás
a fő  /  Tanács / Tanfolyammunkák, laboratóriumi és informatikai oklevelek.

Tanfolyam munka, laboratóriumi és diplomák a számítógépes tudományban.

Dolgozzon sorokkal. String osztály. Osztálytervezők. Hozzárendelés (), hozzáadás (), beillesztés (), cserélje ki (), törlés (), keresés (), rfind (), összehasonlítás (), c_str (), betöltés (), törlés (), megtalálja (), c_str () ). Példák

1. Mi a hozzárendelése a C ++ programokban?

String osztály, amely char * sorokkal dolgozik, amelyek a végső nulla karakterlánc. String osztályt vezettek be alternatív lehetőség A karakterből álló sorokkal együtt *. A szimbólum által kitöltött vonalak ‘\0’ még mindig C-vonalaknak nevezik. Mivel a karakterlánc egy osztály, az osztály tárgyait deklarálhatja.

2. Milyen modulokat (könyvtárak) kell csatlakoztatni az MS Visual Studio C ++ karakterláncának jellemzőinek használatához?

Az MS Visual Studio (C ++) karakterláncának jellemzőinek használatához csatlakoztatnia kell a könyvtárat és STD névtér.

#Inlude. Névtér STD használatával;
3. Hogyan működik a változó típusú karakterlánc nyilatkozata? Példák

A változó típusú karakterlánc nyilatkozata ugyanúgy történik, mint egy rendes változó. Lehetséges változat Egyidejű inicializálással rendelkező hirdetések.

// típusú karakterlánc S1; // változó az S1 típusú karakterláncdal S2 \u003d "Ez egy karakterláncváltozó"; // inicializációs bejelentés // Változó típusú karakterlánc használata hozzárendelési szolgáltatóval S1 \u003d S2; // s1 \u003d "Ez egy karakterlánc változó" S2 \u003d "Új szöveg";
4. Milyen előnyökkel és hátrányokkal jár a karakterlánc használata a karakterhez képest *?

Új stringtípus létrehozása az volt, hogy hátrányos helyzetűek a karakterláncok karakterláncokkal, amelyek bemutatták a típusú karaktereket *. A CHAR * típusú karakterlánchoz képest a következő fő előnyökkel jár:

  • képesség a Standard C ++ szolgáltatókkal ( = , + , = = , <> stb.). Mint tudod, amikor a típusú karakter * használata *, még a legegyszerűbb műveletek is nehézkesnek tűntek, és túlzottan írták az írást szoftverkód;
  • a programkód jobb megbízhatósága (biztonság) biztosítása. Például, ha a sorok másolásakor, String típus rendelkezik a szükséges lépéseket, hogy előfordulhat, hogy a forrás húr van egy nagyobb méretű, mint a vevő sorban;
  • egy karakterlánc, mint független adattípus. Az AD típusú karakterlánc mint karakterlánc az összes változó számára, amely az adatok következetességét biztosítja.

A karakterlánc fő hátránya a char * típushoz képest lassú adatfeldolgozási sebesség van. Ez annak köszönhető, hogy a stringtípus valójában a konténerosztály. És az osztály munkája további végrehajtást igényel a programkód, amely viszont túl sokat vesz fel.

5. Milyen szolgáltatók használhatók a String osztályú objektumokkal?

A String osztály kényelmes, mert lehetővé teszi, hogy kényelmesen manipulálja a vonalat a szabványos (túlterhelt) operátorok segítségével.

A következő üzemeltetők segítségével karakterláncokat használhat.

  • = - feladat
  • + - Együttműködés (evezés)
  • += - hozzárendelés összekapcsolásával
  • == - egyenlőség
  • != - egyenlőtlenség
  • < - Kevésbé
  • <= - kevesebb vagy egyenlő
  • > - Több
  • >= - több vagy egyenlő
  • Indexálás

Példa, amely bemutatja a fenti operátorok használatát

// String típus, sor műveletek S1 \u003d "S-1" karakterlánc; S2 \u003d "S-2" karakterlánc; S3 string; Bool b; // művelet "\u003d" (string hozzárendelés) S3 \u003d s1; // s3 \u003d "s-1" // Operation "+" - a húrok összefoglalása S3 \u003d S3 + S2; // s3 \u003d "s-1s-2" // Operation "+ \u003d" - hozzárendelés összekapcsolásával S3 \u003d "S-3"; S3 + \u003d "ABC"; // s3 \u003d "s-3abc" // művelet "\u003d\u003d" - A húrok összehasonlítása B \u003d s2 \u003d\u003d s1; // b \u003d false b \u003d s2 \u003d\u003d "s-2"; // b \u003d igaz // művelet "! \u003d" - A húrok összehasonlítása (nem egyenlő) S1 \u003d "s1"; S2 \u003d "s2"; B \u003d S1! \u003d S2; // b \u003d igaz // Tevékenységek "<" и ">"- vonal összehasonlítás S1 \u003d "ABCD"; S2 \u003d "de"; B \u003d S1\u003e S2; // b \u003d hamis b \u003d s1< s2; // b = true // Tevékenységek "<=" и ">\u003d "- A húrok összehasonlítása (kevesebb vagy egyenlő, nagyobb vagy egyenlő) S1 \u003d "ABCD"; S2 \u003d "AB"; b \u003d s1\u003e \u003d S2; // b \u003d igaz b \u003d s1<= s2; // b = false b = s2 >\u003d "AB"; // b \u003d igaz // Működés - indexálás Char c; S1 \u003d "ABCD"; C \u003d s1; // c \u003d "c" c \u003d s1; // c \u003d "A"
6. Tartalmaz-e az osztály-karakterláncok?

Mint bármely osztály, a stringosztálynak számos tervezõje van. A főbbek a következők:

Húr (); String (CONSTRY * STR); String (CONST String & Str);

7. Példák az inicializálásra a tervezők segítségével

Az alábbiakban példák a változók inicializálására

S1 string ("Hello!"); S2 \u003d "Hello!" ; // inicializálás - String Designer (CONST CHAN * STR) char * ps \u003d "hello"; S3 (PS) karakterlánc; // S4 (S3) inicializálási karakterlánc; // inicializálás - String Designer (CONST STRING & STR) S5 karakterlánc; // inicializálás - String Designer ()

8. A húrok hozzárendelése. Hozzárendelje () funkciót. Példák

Egy sor hozzárendeléséhez két módszer közül választhat:

  • használja a hozzárendelési szolgáltatót ‘=’ ;
  • használja a hozzárendelés () funkciót a karakterlánc osztályból.

A hozzárendelés () funkciónak több túlterhelt implementációja van.

Az első lehetőség az, hogy a funkció paraméter nélkül hívja.

String és hozzárendelés (üresség);

Ebben az esetben egy sor egyszerű hozzárendelése van.

A második lehetőség lehetővé teszi, hogy másolja a megadott számú karakter a karakterláncból:

String & hozzárendelése (CONST string & S, size_type st, size_type szám);

  • s olyan objektum, amelyből a forrásvonalat elvégzik;
  • st - index (pozíció) a karakterláncban, amelyből a Num szimbólumok kezdődnek;
  • nUM - A ST pozícióból másolandó karakterek száma;
  • a size_type az adatok sorrendje.

A hozzárendelés () funkció harmadik verziója másolódik a hívó objektumra. Az első számsor szimbólumok:

String és hozzárendelés (CONST Char * S, size_type szám);

  • s - A szimbólummal befejezett karakterlánc ‘\0’ ;
  • nUM - A hívó objektumra másolandó karakterek száma. Az S karakterlánc első számát másolja.

Az alábbi példa a hozzárendelés () függvény különböző implementációi.

Példa.

// Strings hozzárendelése, hozzárendelése () funkció S1 \u003d "webhely" karakterlánc; S2 string; S3 string; char * ps \u003d "webhely"; S3 \u003d s1; // s3 \u003d "Site" s2.assign (S1); // s2 \u003d "Site" s2.assign (S1, 0, 4); // s2 \u003d "legjobb" s2.assign (PS, 8); // s2 \u003d "BestProg"
9. Kombinálja a vonalakat. () Függvény. Példa

A húrok kombinálásához a () függvényt használják. A sorok hozzáadásához a műveletet is használhatja ‘+’ , például:

S1 karakterlánc; S2 string; S1 \u003d "ABC"; S2 \u003d "DEF"; S1 \u003d S1 + S2; // s1 \u003d "abcdef"

Azonban az Append () függvény jól illeszkedik, ha hozzá kell adnia a vonal részét.

A funkció a következő végrehajtási lehetőségekkel rendelkezik:

String & append (CONST string & s, size_type start); String & append (const char * s, size_type num);

Az első kiviteli alaknál a funkció a kisbetűs objektumhoz kapcsolatot kap. s. amely hozzáadódik a hívó objektumhoz. A második kiviteli alaknál a funkció egy mutatót kap a CONST Char * stringhez, amely befejeződött a "\\ 0" szimbólummal.

Példa. A funkció függvényének funkciójának bemutatása ().

S1 \u003d "ABCDEF" karakterlánc; S2 \u003d "1234567890"; Melléklet (S2, 3, 4); // s1 \u003d "abcdef4567" char * ps \u003d "1234567890"; S1 \u003d "ABCDEF"; S1.Append (PS, 3); // s1 \u003d "abcdef123"

10. A karakterek beillesztése a karakterláncba. Helyezze be a () funkciót. Példa

Egy sor egy sor egy meghatározott pozícióba helyezéséhez a betét () függvényt, amelynek számos végrehajtási lehetősége van.

A funkció első opciója lehetővé teszi, hogy a teljes s vonal beillesztését a hívási karakterlánc kezdete (hívó objektum) elindításának meghatározott helyzetébe helyezze:

String & Insert (Méret_type Start, Const String & S);

A funkció második lehetősége lehetővé teszi a rész (paraméterek instart, num) húrok beillesztését a hívó kezdetének megadott helyzetében:

String & Beszúrás (Méret_type Start, Const String & S, Size_Type instart, Size_type Num);

A fenti funkciókban:

  • s egy olyan karakterlánc, amely be van helyezve a hívási karakterláncba;
  • start - Pozíció a hívási karakterláncban, amelyből az S sztring beillesztése történik;
  • az INSTARD az S sorban lévő pozíció, amelyből a beillesztés zajlik;
  • num az a karakterek száma, amelyek az S karakterláncban vannak behelyezve az INSTARD pozícióból.
S1 \u003d "ABCDEF" karakterlánc; S2 \u003d "1234567890" karakterlánc; S1.insert (3, S2); // s1 \u003d "abc" + "1234567890" + "def" \u003d "abc1234567890def" S2.insert (2, S1, 1, 3); // s2 \u003d "12bcd34567890"
11. A karakterek cseréje a karakterláncban. Cserélje ki a () funkciót. Példa

A Cserélő () függvény elvégzi a karakterlánc karakterek cseréjét. A funkció a következő végrehajtási lehetőségekkel rendelkezik:

String & Replace (Size_type Start, Size_type Num, Const String & S); String & csere (Méret_type start, size_type num, const string & s, size_type repnum);

Az első kiviteli alaknál a hívót egy s karakterlánc váltja fel. Lehetőség van a pozíció (indítás) beállítása és a karakterlánc (NUM) számának (NUM) beállítása, amelyet ki kell cserélni egy s karakterlólappal.

A Cserélő () függvény második verziója eltér az elsőtől abban, hogy lehetővé teszi a hívási karakterlánc csak egy részét a vonal s. Ebben az esetben kettő van beállítva további paraméterek: Reppstarta pozíció és karakterek száma egy String S, amely alkotja a hívó karakterláncot.

Példa. A művelet bemutatása Cserélje ki () funkciót.

S1 \u003d "ABCDEF" karakterlánc; S2 \u003d "1234567890" karakterlánc; S2.replace (2, 4, S1); // s2 \u003d "12abcdef7890" s2 \u003d "1234567890"; S2.replace (3, 2, S1); // s2 \u003d "123abcdef67890" s2 \u003d "1234567890"; S2.replace (5, 1, s1); // s2 \u003d "12345abcdef7890" // A karakterek cseréje, cserélje ki a funkciót () S1 \u003d "ABCDEF" karakterlánc; S2 \u003d "1234567890" karakterlánc; S2.replace (2, 4, S1); // s2 \u003d "12abcdef7890" s2 \u003d "1234567890"; S2.replace (3, 2, S1); // s2 \u003d "123abcdef67890" s2 \u003d "1234567890"; S2.replace (5, 1, s1); // s2 \u003d "12345abcdef7890" s2 \u003d "1234567890"; S2.replace (5, 1, S1, 2, 3); // s2 \u003d "12345cde7890" s2 \u003d "1234567890"; S2.replace (4, 2, S1, 0, 4); // s2 \u003d "1234abcd7890"

12. eltávolítás meghatározott szám Szimbólumok a karakterláncból. Törli () funkciót. Példa

A karakterek eltávolítása a hívóból, használja az Erase () funkciót:

String & törlése (size_type index \u003d 0, size_type num \u003d npos);

  • index - index (pozíció), amelyből a hívó karaktert kell eltávolítania;
  • nUM - Az eltávolított karakterek száma.

Példa.

STRING S \u003d "01234567890"; S.erase (3, 5); // s \u003d "012890" s \u003d "01234567890"; S.erase (); // s \u003d ""

13. Keresési szimbólum a sorban. Keresse meg () és rfind () funkciókat. Példák

A String osztályban az aljzatban lévő sor keresése két módon lehet elvégezni a keresési irányban:

  • a karakterlánc kezdete végéig a keresés () funkció használatával;
  • a sor végétől a rfind () függvény elejéig tekintve.

A prototípus funkció megtalálása () rendelkezik az űrlapon:

Size_type keresés (CONST STRING & S, SIZE_TYPE START \u003d 0) CONST;

  • s - szubsztring, amely a sorban keres, ami okozza ez a funkció. A funkció az s karakterlánc első bejegyzését keresi. Ha a SubtroS S megtalálható a karakterláncban, ami ezt a funkciót okozza, akkor az első bejegyzés helyzetét visszaküldi. Egyébként visszatér -1;

A rfind () funkció prototípusa az űrlapon van:

SIZE_TYPE RFIND (CONST STRING & S, SIZE_TYPE START \u003d NPOS) CONST;

  • s - szubsztring, amely a hívóban keres. A sorban lévő szubsztrálás keresése végül az elejéig történik. Ha a Subtro S a hívási karakterláncban található, akkor a funkció az első bejegyzés helyzetét adja vissza. Ellenkező esetben a függvény visszatér -1;
  • az NPOS a hívóhír utolsó karakterének helyzete;
  • a kezdet olyan helyzet, amelyből a keresést végzik.

1. példa. A Funkció eredményének eredménye ()

// String Type, talál () S1 \u003d "01234567890" karakterlánc; S2 \u003d "345" karakterlánc; S3 \u003d "ABCD" karakterlánc; INT POS; Pos \u003d s1.find (S2); // pos \u003d 3 pos \u003d s1.find (S2, 1); // pos \u003d 3 pos \u003d s1.find ("jklmn", 0); // pos \u003d -1 pos \u003d s1.find (S3); // pos \u003d -1 pos \u003d s2.find (S1); // pos \u003d -1

2. példa. Az rfind () funkció bemutatása.

// String Type, talál () és rfind () S1 \u003d "01234567890" karakterlánc; S2 \u003d "345" karakterlánc; S3 \u003d "ABCD" karakterlánc; S4 \u003d "ABCD --- ABCD"; INT POS; Pos \u003d s1.rfind (S2); // pos \u003d 3 pos \u003d s1.rfind (S2, 12); // pos \u003d 3 pos \u003d s1.rfind (S2, 3); // pos \u003d 3 pos \u003d s1.rfind (S2, 2); // pos \u003d -1 pos \u003d s2.rfind (S1); // pos \u003d -1 pos \u003d s1.rfind (S3, 0); // pos \u003d -1 // különbség a keresés () és az rfind () funkciók között Pos \u003d s4.rfind (S3); // pos \u003d 7 pos \u003d s4.find (S3); // pos \u003d 0
14. A vonalak összehasonlítása. Összehasonlítás () függvény. Példa

Mivel a karakterlánc típus az osztály, majd összehasonlítani két vonalat egymással, használhatja a műveletet ‘= =’ . Ha két vonal ugyanaz, akkor az összehasonlítás eredménye igaz lesz. Ellenkező esetben az összehasonlítás eredménye hamis lesz.

De ha össze kell hasonlítania egy vonal egy részét a másikon, akkor az összehasonlító () függvény erre van lehetőség.

Prototype Összehasonlítás () Funkció:

INT Összehasonlítás (Méret_type Start, Size_Type Num, Const String & S) CONST;
  • s egy karakterlánc, amely összehasonlítja a hívási karakterláncot;
  • start - Pozíció (index) az S sorban, amelyből a karakterláncok szimbólumai összehasonlításra kezdődnek;
  • num az S karakterláncban lévő karakterek száma, amelyek összehasonlítják a hívási karakterláncot.

A funkció az alábbiak szerint működik. Ha a hívó karakterlánc kisebb, mint az S sor, akkor a függvény visszatér -1 (negatív érték). Ha a hívó karakterlánc nagyobb, mint az S sor, akkor a függvény 1 (pozitív értéket) ad vissza. Ha két vonal egyenlő, akkor a funkció 0-t ad vissza.

Példa. Az összehasonlítás () funkció bemutatása:

// típusú karakterlánc, összehasonlítás () funkció S1 \u003d "012345" karakterlánc; S2 \u003d "0123456789" karakterlánc; Int res; res \u003d s1.are (S2); // res \u003d -1 res \u003d s1.are ("33333"); // res \u003d -1 res \u003d s1.are ("012345"); // res \u003d 0 res \u003d s1.are ("345"); // res \u003d -1 res \u003d s1.are (0, 5, s2); // res \u003d -1 res \u003d s2.10, 0, 5, s1); // res \u003d -1 res \u003d s1.are (0, 5, "012345); // res \u003d -1 res \u003d s2.are (S1); // res \u003d 1 res \u003d s2.compare ("456"); // res \u003d -1 res \u003d s2.are ("000000"); // res \u003d 1
15. A vonal végével egy karakterlánc megszerzése "\\ 0" (char *). C_STR () funkció. Példa

Ahhoz, hogy egy szimbólummal végződik egy karakterlánc ‘\0’ A C_STR () funkciót használják.

Prototípus funkció:

Const char * c_str () const;

A funkciót a CONST módosítóval kell bejelenteni. Ez azt jelenti, hogy a funkció nem módosíthatja a hívót (string).

1. példa.. Konverziós típus karakterlánc CONSTRY *.

// típusú karakterlánc, C_ST funkció () STRING S \u003d "ABCDEF"; Const char * ps; ps \u003d s.c_str (); // ps \u003d "abcdef"

2. példa.

A sztring a karakterláncból a rendszerben :: String típus a címke vezérlőelemben jelenik meg.

A modern C ++ szabványban a funkciókkal és tulajdonságokkal rendelkező osztály (változók) úgy definiálódik, hogy szervezzen munkát sorokkal (a klasszikus nyelvű C sorokban, mint ilyen, csak karakterek vannak):

#Inlude.

#Inlude.

#Inlude.

A sorokhoz való munkához is csatlakoztatnia kell a szabványos névteret is:

Névtér STD használatával;

Ellenkező esetben az STD :: String osztály leírója mindenhol meg kell jelölnie.

Az alábbiakban egy példa a karakterláncban futó programra (a régi Si-kompatibilis fordítók nem működik!):

#Inlude. #Inlude. #Inlude. Névtér STD használatával; Int Main () (STRING S \u003d "TEST"; S.Insert (1, "!"); Cout<< s.c_str() << endl; string *s2 = new string("Hello"); s2->törlés (S2-\u003e Vége ()); Cout<< s2->c_str (); Cin.get (); Vissza 0; )

A karakterláncok főbb jellemzői:

  • inicializálás karakterrel (beépített típusú karakterlánc) vagy más karakterlánc objektummal. A beépített típus nem rendelkezik a második lehetőséggel;
  • egy sor másolása a másikra. A beépített típushoz a Strcpy () függvényt kell használnia;
  • hozzáférés az olvasáshoz és az íráshoz szükséges egyedi karakterláncokhoz. A beágyazott tömbben egy indexes üzemeltetést használnak erre vagy közvetett címzésre egy mutatóval;
  • két soronkénti összehasonlítása egyenlőségenként. A beépített típushoz az STRCMP () családi funkciókat használják;
  • két vonal összefogása (tengelykapcsoló), eredményt adva vagy harmadik sorként, vagy az egyik kezdeti helyett. A beépített típus esetében a Strcat () függvény azonban alkalmazható, hogy az eredmény elérése az új sorba, szükség van a strcpy () és a strcat () függvények, valamint a memória gondozására kiosztás;
  • beépített szerszámok a karakterlánc hosszának meghatározásához (tagfunkciók mérete () és l egth ()). Ismerje meg a beépített típusú karakterlánc hosszát csak a STRLEN () függvény használatával történő számítással;
  • az a képesség, hogy tudják, hogy a karakterlánc üres.

Tekintsük ezeket az alapvető lehetőségeket részletesebben.

A karakterlánc inicializálása I. leírásakor. hosszirányú vonal(a végleges nulla terminátor nélkül):

String St ("My Line \\ n"); Cout<< "Длина " << st << ": " << st.size() << " символов, включая символ новой строки\n";

A karakterlánc beállítható és üres lehet:

St2 karakterlánc;

Hogy ellenőrizze Üres, akár stringösszehasonlíthatja a hosszát 0-tól:

Ha (! St.Size ()) // üres

vagy alkalmazza az üres () módszert, amely igaz az üres karakterláncra, és hamis a nem üres:

Ha (st.empty ()) // üres

A karakterlánc létrehozásának harmadik formája inicializálja az objektumtípus-karakterláncot egy másik típusú objektumhoz:

St3 karakterlánc (ST);

Az ST3 vonalat az ST string inicializálja. Hogyan biztosíthatjuk, hogy ezek a vonalak egybeesnek? Az összehasonlító kezelőt (\u003d\u003d) használjuk:

Ha (st \u003d\u003d st3) // inicializálása dolgozott

hogyan másoljon egy sort egy másikra? A szokásos megbízási művelet használata:

St2 \u003d st3; // másolja az ST3-at az ST2-ben

-Ért tengelykapcsoló karakterlánc Az adagolási műveletet (+) használják, vagy hozzárendelési műveletet használnak (+ \u003d). Hagyja két vonalat:

S1 string ("Hello"); S2 string ("világ \\ n");

Kaphatunk egy harmadik sor, amely az első kettő összekapcsolódása, így:

S3 \u003d S1 + S2 karakterlánc;

Ha az S2-et az S1 végéig szeretnénk hozzáadni, meg kell írnunk:

S1 + \u003d S2;

Az addíciós működés kuplungosztályú objektumokat tartalmazhat húr Nem csak egymás között, hanem a beépített típusú sorokkal is. A fenti példát írhatja át, hogy a speciális karakterek és az írásjelek látják magukat a beépített karakter, és a szignifikáns szavak - a karakterlánc-osztály tárgya:

CONSTRY * PC \u003d ""; S1 string ("hello"); S2 string ("világ"); STRING S3 \u003d S1 + PC + S2 + "\\ n"; Cout<< endl << s3;

Ilyen kifejezések, mert a fordító "tudja", hogyan lehet automatikusan konvertálni a beépített típus objektumait a karakterlánc osztályú objektumokhoz. Talán a beépített karakterlánc-karakterlánc egyszerű hozzárendelése:

S1 karakterlánc; Const char * pc \u003d "karakter tömb"; S1 \u003d PC; // jobb

Fordított konverzió nem működik. A beépített típusú karakterlánc következő inicializálásának megpróbálásának megpróbálása összeállítási hibát okoz:

Char * str \u003d s1; // befejezési hiba

Az ilyen átalakítás elvégzéséhez kifejezetten felhívni kell egy tagfunkciót a C_STR () névvel ("SI SI") névvel:

Const char * str \u003d s1.c_str ();

A C_STR () függvény egy mutatót ad vissza egy karakter tömbbe, amely tartalmazza a karakterláncot, amelyben a beépített karakterlánc típusban lenne. Környezeti kulcsszó Itt megakadályozza a "veszélyes" a modern vizuális környezetben, hogy közvetlenül módosítsa az objektum tartalmát a mutatón keresztül.

NAK NEK külön szimbólumok A típusú karakterlánc tárgya, mint egy beépített típus, az index segítségével hivatkozhat. Itt például a kód egy töredéke, amely a hangsúly szimbólumainak pontjait helyettesíti:

String str ("www.disney.com"); INT méret \u003d str.Size (); mert (int i \u003d 0; i< size; i++) if (str[i] == ".") str[ i ] = "_"; cout << str;

Cserélje ki (str.begin (), str.end (), ".", "_");

Igaz, nem használják itt egy csere osztályú karakterlánc, de ugyanaz az algoritmus:

#Inlude.

Mivel a string objektum úgy viselkedik, mint egy tartály, más algoritmusok alkalmazhatók rá. Ez lehetővé teszi a feladatok megoldását, amelyek közvetlenül a karakterláncok funkciói által megoldottak.

Az alábbiakban a karakterláncok fő szereplőinek és funkcióinak rövid leírása, a táblázatban szereplő hivatkozások az interneten az orosz nyelvű leírásokhoz vezetnek. Az osztályszöveg teljesebb listája, például Wikipédiában vagy a CPlusplus.com weboldalon érhető el.

Állítsa be a karakterlánc karaktereit

operator \u003d.

a string értékek hozzárendelése

hozzárendelni.

hozzárendeli a karakterlánc szimbólumokat

Hozzáférés az egyes karakterekhez

nÁL NÉL.

a megadott szimbólum elérése index kilépési ellenőrzéssel a határokhoz

operátor.

a megadott szimbólum megszerzése

elülső

az első szimbólum megszerzése

vissza

az utolsó szimbólum megszerzése

adat.

visszatér egy mutatót az első sor szimbólumra

c_str.

visszatér nem módosítható Szimbólum tömb, amely karakterláncokkal rendelkezik

Ellenőrizze a karakterlánc kapacitását

üres

ellenőrzi, hogy a karakterlánc üres

méret
hossz.

visszaadja a karakterlánc karakterek számát

max_size.

visszaadja a karakterek maximális számát

lEFOGLAL

tartalékok a tároláshoz

Műveletek a karakterláncon

egyértelmű

törli a karakterlánc tartalmát

betét.

szimbólumok behelyezése

törli.

a karakterek törlése

visszavet

szimbólum hozzáadása a karakterlánc végéhez

pop_back

eltávolítja az utolsó szimbólumot

mellékel.

operátor + \u003d.

hozzáadja a szimbólumokat a karakterlánc végéhez

Összehasonlítás

hasonlítsa össze a két húrot

helyettesít

helyettesíti a megadott szimbólum minden bejegyzését

substr.

visszatérés aljzat

másolat.

másolatok szimbólumok

átméretez

megváltoztatja a tárolt karakterek számát

Engedély az adatfájlok megnyitásához a megadott mappákban, mintha az aktuális mappában vannak. Paraméterek, csapat nélkül mellékel. Megjeleníti a csatolt könyvtárak listáját.

Szintaxis

mellékel. [; ] [[korong: ]út[; ...]] [ / x:{tOVÁBB.|ki}] [/ Pálya:{tOVÁBB.|ki}] [ E.]

Paraméterek

; Törli az előző hívásokban megadott mappák listáját. [ korong: ]út Megadja az aktuális mappához csatolni kívánt lemezt és mappát. Ha a lemez nincs megadva, az aktuális lemezt alapértelmezés szerint használja. Több kombináció beállítása [ korong: ]útpontosvesszővel elválasztva. / x:{tOVÁBB. | ki) Meghatározza, hogy az MS-DOS alrendszer a programok végrehajtásakor a mellékelt mappák keresése. / X: Be A mellékelt mappák keresése történik. / x: Ki A mellékelt mappák keresése nem történik meg. / Pálya:{tOVÁBB.|ki) Megadja a programot annak szükségességére, hogy a fájlneveket teljes mértékben jelezzék. Az alapértelmezett érték / Útvonal: bekapcsolva. / e A mellékelt mappák listájának rögzítése a hozzáállás környezeti változóhoz. Ez a parancssor paraméter csak akkor használható, ha a parancs első hívás mellékel. A rendszer elindítása után. /? Megjeleníti a parancssori súgóját.

Jegyzetek

  • A mellékelt mappák listájának mentése

    Parancssor paraméter E. Csapatok mellékel. Lehetővé teszi, hogy hozzárendelhesse a csatolt környezetet nevezett változó környezetet. Ehhez először használja a parancsot mellékel. csak a parancssori paraméterrel E.. Ezután használja újra a parancsot mellékel.A csatolni kívánt mappák megadásakor. Paraméterek E. és [ korong: ]út Nem használható egy parancssorban.

  • Állítsa be több csatolt mappát

    Több mappa csatlakoztatásához írja be őket a pontosvolonok elválasztásával. A parancs hívásakor mellékel. paraméterekkel [ korong: ]út A csatolt mappák meglévő listája a csapatban mellékel. új lesz.

  • A paraméter használata dir.

    A csapat használata esetén dir. A fájlok és alkönyvtárak listájának megjelenítéséhez a csatolt mappákból származó fájlnevek nem jelennek meg.

  • Fájlnév Konfliktusmegoldás

    Ha a fájlnevek egybeesnek az aktuális és a csatolt mappában szereplő fájlnevekben, az aktuális mappa fájljait nyitják meg.

  • Csapat mellékel. és új fájlok létrehozása

    Ha a fájl nyitva van a mellékelt mappában, akkor az aktuális mappa fájljaival együtt dolgozzon. Ha a fájlt meg kell menteni egy azonos névvel rendelkező fájl létrehozásával, az új fájl az aktuális mappába kerül, és nem a mellékelt. Csapat mellékel. Ha olyan adatfájlokkal dolgozik, amelyek nem változtatnak, vagy változhatnak anélkül, hogy új példányokat hoznának létre. Például, amikor az adatbázisokkal dolgozik, általában nem hoz létre új másolatokat. A szövegszerkesztők és a processzorok általában fájlokat menthetnek az új példányok létrehozásával. A helytelen munka elkerülése érdekében ne használja a parancsot mellékel. ilyen programokkal.

  • A paraméter használata / X: Be a csapattal Pálya.

    Ha a paramétert megadjuk / X: BeA csatolt mappákban lévő programok egyszerűen futhatnak egyszerűen a program nevére a parancssorba. Általában csapat pálya. Lehetővé teszi a programokat tartalmazó mappák meghatározását azonban a programokat tartalmazó mellékelt mappák meghatározásához nem kell használni a parancsot pálya.. Az MS-DOS alrendszer megtalálja ezt a programot a csatolt könyvtárak listájával. Ezt okozza az a tény, hogy az MS-DOS első keresést a végrehajtható programfájl az aktuális könyvtárban, majd a csapat által megkérdezett könyvtárakban.

  • A paraméter csökkentése / X: Be előtt / X.

    Lehetőség van a paraméter csökkentésére / X: Be előtt / X.. Ehhez adja meg a paramétert / X: Be Amikor először hívsz egy csapatot mellékel. A rendszer elindítása után. Ezt követően válthat / X: Be és / x: Ki.

  • A paraméter használata E. a csapattal kÉSZLET.

    A paraméter használata E. a csapattal kÉSZLET.Megjelenítheti a mellékelt mappák listáját.

Példák

A B: Le betűk és a következő mappákból származó adatfájlok opcionálisan megnyitása az alábbi mappából írja be:

b: B betűk; A: \\ jelentések

b: B betűk; A: \\ jelentések

A kérdések, megbeszélések, megjegyzések, javaslatok stb. szekció fórum Ez az oldal (regisztráció szükséges).

  • Hirdetés:

    Eljárás alkalmazása (var f: szöveg);

    Hol:
    F egy szöveges fájlváltozó.

  • Leírás:

    Megnyit egy meglévő fájlt, hogy folytassa az írást egy fájlba.

  • Megjegyzések:

    Az F - a szövegfájl-változó a külső fájlhoz kapcsolódik a hozzárendelési eljáráshívás használatával.

    A melléklet megnyitja a meglévő külső fájlt az F fájlváltozóban definiált névvel. Ha a külső fájl nem létezik, akkor egy bemeneti / kimeneti hiba lép fel. Ha f már nyitva van, akkor bezáródik és megnyílik. Az aktuális fájl pozíciója a fájl végére van beállítva.

    Ha a fájl utolsó 128 bájtos fájljában van egy CTRL + Z szimbólum (szimbólum, 26 kóddal), akkor az aktuális fájl pozíciója az első CTRL + Z felülírása a blokkban. Így a CTRL + Z szimbólummal kitöltött szöveg hozzáadható a szöveghez.

    Ha F-t hozzárendelték, egy üres név, például hozzárendelés (F, ""), majd a melléklethez való hozzáférés után f egy szabványos kimeneti eszközre utal (leíró szám \u003d 1).

    A függelékhez való hozzáférés után az F csak olvasható fájl lesz, és a fájlpozíció mutatója a végére van állítva.

    Az 1. módban az Iath funkció nullát ad vissza, ha a művelet sikeres volt, különben nulla hibakódot ad vissza.

  • Példa:

    (Példa a melléklet-eljáráshoz)
    Wincrt használ;
    Var f: szöveg;
    Kezdődik.
    Hozzárendelés (f, "test.txt");
    Átírja (f); (Hozzon létre egy új fájlt)
    Writeln (F ', "Kis szöveg ;-)");

    (F) függelék; (Adatok hozzáadása a fájl végéhez)
    Writeln (F, "Egy kis szöveg!");
    Zárja be (f); (Zárva)
    Vége.