C ++

Kā lietot C ++ String Literal

Kā lietot C ++ String Literal
Datora tastatūrā ir iespiestas rakstzīmes. Nospiežot taustiņu, ekrānā redzat rakstzīmi. Piezīme: atstarpe ir arī raksturs. Stīgu literāls ir rakstzīmju secība. Šajā rakstā ir paskaidrots, kā izmantot C ++ virknes literālus. Lai saprastu šo rakstu, jums jāzina par C ++ masīviem un norādēm.

Raksturs Literāls

Rakstzīmju burtnieks ir raksturs atsevišķās pēdiņās. Tātad,

char ident1 = 'A'; char ident2 = 'b'; char ident3 = '4'; char ident4 = '6';

ir visas atšķirīgās rakstzīmju definīcijas. Ņemiet vērā, ka cipars atsevišķās pēdiņās ir rakstzīme, nevis vesels skaitlis.

Bēgšanas secība, piemēram, \ ”(skat. Zemāk) atsevišķās pēdiņās, ir raksturs. Tātad,

char ident1 = '"';

ir raksturs.

Viens simbols divkāršās pēdiņās nav raksturs; tā ir viena rakstzīmes virkne. Tātad “A”, “c” vai “2” nav raksturs, bet ir katra viena rakstzīme.

Char mainīgo var atkārtoti piešķirt vēlāk programmā:

char ident = 'x';
ident = 'Y';

Lai apturētu identifikatoram piešķirtās rakstzīmes maiņu, vēlāk programmā programmā zem definīcijas ievadiet rezervēto vārdu const šādi:

const char ident = 'd';

Tiek teikts, ka mainīgais ident ir tikai lasāms.

Stīgu burtiskā

Stīgu literāls ir rakstzīmju secība divkāršās pēdiņās. Tātad,

char ident1 [] = "Es tevi mīlu"; char ident2 [] = "Es ienīstu 3 no jums"; char ident3 []
= "mēs esam pasaule"; char ident4 [] = "Sveika pasaule!";

ir visas virknes literāļu definīcijas. Ievērojiet dubultpēdiņu izmantošanu. Virknei nav nekā parasta mainīgā. Virknes literālis ir rakstzīmju masīvs, kur tā vietā, lai norobežotu ar , secība tiek atdalīta ar “”. Rakstzīmes nav atdalītas ar komatiem. Kvadrātiekavās var ievietot jebkuru skaitli, kas ir lielāks par burtu skaitu virknes burtnīcā. Tomēr kvadrātiekavas ir labāk atstāt tukšas.

Viens rakstzīme divkāršās pēdiņās nav raksturs; tā ir viena rakstzīmes virkne. Tātad “A”, “c” vai “2” nav raksturs, bet katra pa vienam rakstzīmei.

Virknes mainīgais neļauj atkārtoti piešķirt pilnu burtnīcu, vēlāk programmā - skatīt zemāk. Tomēr atsevišķas rakstzīmes var piešķirt atkārtoti - skatīt zemāk.

Vienots un divkāršs citāts raksturs vai burts

Lai jums būtu viens rakstura citāts, dariet kaut ko līdzīgu,

char ident = '\' ';

Lai iegūtu divkāršu pēdiņu kā rakstzīmju virknes burtu, dariet kaut ko līdzīgu,

char ident [] = "ab" cd ";

Atpakaļsvītru izmanto evakuācijas secībā, lai izvairītos no konfliktiem ar norobežotājiem. Lai rakstzīme būtu divkārša pēdiņa, nav nepieciešams slīpsvītra: “” ir labi. Lai virknes burtnīcā būtu viens citāts, nav nepieciešams slīpsvītra: “ab'cd” ir labi.

Tā kā slīpsvītru izmanto, lai aizbēgtu no rakstzīmes, tā ir jāizbēg ar vēl vienu slīpsvītru, ja to izmanto kā rakstzīmi vai virknes burtnīcā.

Bēgšanas secība

Bēgšanas secība ir viena no:

\ '"\? \\ \ a \ b \ f \ n \ r> \ t \ v

Katra aizbēgšanas secība parasti tiek ierakstīta vai nu kā rakstzīme atsevišķās pēdiņās, vai kā glābšanās secība divkāršās pēdiņās.

Operācijas ar rakstzīmēm

Savienošana

Pēc definīcijas divus virkņu literālus var savienot ar atstarpi šādi:

char ident [] = "abc" "def";
cout << ident << "\n";

Rezultāts ir: abcdef . Šo definīciju var attiecināt uz vairāk nekā diviem literāļiem. Piezīme: paziņojums ir definīcija, nevis tikai uzdevums. Definīciju var turpināt līdz nākamajai rindai ar atstarpi, atdalot līnijas šādi:

char ident [] = "abc" "def"
"ghi";
cout << ident << "\n";

Rezultāts ir abcdefghi.

Piezīme: rakstzīmes šādā veidā nevar savienot, jo atsevišķās rakstzīmes pēdiņās nedrīkst būt vairāk par vienu simbolu.

Vienlīdzības operatori

Tās pašas rakstzīmes vienā un tajā pašā gadījumā ir vienādas. Viņi nav vienādi, ja nav vienā un tajā pašā lietā. Apsveriet,

bool rezultāts = 'B' == 'B';
cout << result << "\n";

== nozīmē vienāds, bet = nozīmē piešķirts un nav vienāds. Izeja ir 1 patiesai. Apsveriet,

bool rezultāts = 'B' == 'b';
cout << result << "\n";

Izvade ir 0, ja vērtība nepatiesa. Apsveriet,

bool rezultāts = 'b' == 'c';
cout << result << "\n";

Izvade ir 0, ja vērtība nepatiesa. Apsveriet,

bool rezultāts = 'B' != 'B';
cout << result << "\n";

!= nozīmē nav vienāds, savukārt = nozīmē piešķirts un nav vienāds. Izvade ir 0, ja vērtība nepatiesa. Apsveriet,

bool rezultāts = 'B' != 'b';
cout << result << "\n";

Izeja ir 1 patiesai. Apsveriet,

bool rezultāts = 'b' != 'c';
cout << result << "\n";

Izeja ir 1 patiesai.

Tātad, == un != ir vienlīdzības operatori.

Relāciju operatori

Parastajām rakstzīmēm C ++ augošā secībā skaitļi ir pirms lielajiem burtiem, kas ir pirms mazajiem burtiem.

Tātad < will return true (1) when the left character is less than the right character. The other relational operators, <=, >, > = ir līdzīgi izskaidroti.

Stīgu burtnīca kā objekts

Masīvs ir nemainīgs rādītājs uz konkrēta datu veida secības sākumu. Līdzīgi virkne ir nemainīgs rādītājs uz rakstzīmju secības sākumu. Salīdziniet šādas definīcijas:

int arr [] = 3, 4, 5, 6, 7;
char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "sieviete";

Pirmais masīvs ir intu masīvs, un tam ir pieci elementi. Otrais un trešais masīvs ir rakstzīmju masīvi ar dažādiem nosaukumiem, bet vienādu elementu skaitu. Otrais un trešais masīvs ir vienādi, bet pēc to nosaukumiem. Otrā masīva teksta saturu norobežo iekavas; rakstzīmes atdala ar komatiem, un katra rakstzīme ir atsevišķās pēdiņās. Trešā masīva teksta saturs ir norobežots ar pēdiņām; rakstzīmes nav atdalītas ar komatiem, un katra rakstzīme nav atsevišķās pēdiņās. Otrais un trešais masīvs ir divi virknes veidošanas veidi, bet trešais ir labāks veids.

arr ir nemainīgs rādītājs uz tā masīva pirmo elementu, tas nozīmē, ka arr vienmēr norādīs uz vietu, kurai ir vesels skaitlis 3, pat ja vērtība 3 tiek mainīta. Masīva lielums, pieci elementi, patiesībā nepaliek nemainīgs. Tomēr katru no masīva vērtībām var mainīt.

str ir nemainīgs rādītājs uz masīva pirmo elementu, tas nozīmē, ka str vienmēr norāda uz vietu, kurai ir raksturs “w”, pat ja tiek mainīta “w” vērtība. Rakstzīmju masīva izmērs, pieci elementi, patiesībā nepaliek nemainīgs. Tomēr katru no burta vērtībām var mainīt.

stri ir nemainīgs rādītājs tā burta (masīva) pirmajam elementam, tas nozīmē, ka stri vienmēr norāda uz vietu, kurai ir raksturs, pat ja w vērtība tiek mainīta. Virknes literāla (masīva) lielums, pieci elementi, patiesībā nepaliek nemainīgs. Tomēr katru no burta vērtībām var mainīt.

Kas ir nemainīgs masīvā vai virknes burtnīcā? Masīva pirmā vai burtiskā elementa atmiņas adrese paliek kā masīva vai burtiskā vārda (identifikatora) vērtība, un to nevar mainīt. Masīva vai burtiskā burta lielums patiesībā nepaliek nemainīgs. Katru masīva vai burtiskā vērtību var mainīt. Šis kods parāda, kā ir mainīts katra masīva ceturtais elements:

int arr [] = 3, 4, 5, 6, 7;
char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "sieviete";
arr [3] = 9;
str [3] = 'e';
sloksne [3] = 'e';
cout << arr[3] << '\n';
cout << str << '\n';
cout << stri << '\n';

Rezultāts ir:

9
sievietes
sievietes

Ņemiet vērā, ka definēta virknes literāļa elementiem, tāpat kā iepriekšējai trešajai definīcijai, var piekļūt ar masīva indeksu (apakšindeksu). Izejas otrās rindas iemesls ir norādīts zemāk.

Definīcijas apakšraksts

Ņemiet vērā, ka iepriekš minētajās definīcijās apakšindeksam nav vesela skaitļa. Ja programmētājs nevar viegli noteikt elementu skaitu, apakšgrāda vesels skaitlis ir jāizlaiž. Neatkarīgi no tā, vesels skaitlis nedrīkst būt mazāks par masīva elementu skaitu.

Virknes literālim skaitlim jābūt vismaz par 1 lielāku par rakstzīmju skaitu virknē. Tas ir tāpēc, ka nulles rakstzīmi (\ 0) kompilators vienmēr pievieno virknes masīva beigās, kas norobežots ar pēdiņām. Nulles rakstzīme netiek pievienota otrā masīva beigās, jo tā nav oficiāla virkne. Trešais masīvs ir oficiāla virkne. Šis kods parāda minimālās indeksu vērtības.

int arr [5] = 3, 4, 5, 6, 7;
char str [5] = 'w', 'o', 'm', 'a', 'n';
char stri [6] = "sieviete";

Lai padarītu otro definīciju par oficiālu virkni, ir jāpievieno rakstzīme null:

int arr [5] = 3, 4, 5, 6, 7;
char str [6] = 'w', 'o', 'm', 'a', 'n', '\ 0';
char stri [6] = "sieviete";

Rezultātam tagad jābūt,

9
sievietes
sievietes

bez otrajām “sievietēm”. Ņemiet vērā, ka otrajam masīvam atbilstošais apakšindekss ir 6, nevis 5, kā tas bija.

Pastāvīgas burtiskās vērtības

Lai apturētu jebkuru simbolam dubultās pēdiņās, kas piešķirts identifikatoram, vēlāk modificēšanu programmā, pirms definīcijas ievadiet rezervēto vārdu const šādi:

const char ident [] = "Es tevi mīlu";

Operācijas ar stīgu literātiem

Līdztiesības operācijas

Vienlīdzības operatori ir == un != . Salīdzinot divu virkņu mainīgos (identifikatorus), tiek salīdzināti tieši literāļu rādītāji (adreses); tas ir nepareizi. Lai salīdzinātu virknes, jāsalīdzina literāļi, kā norādīts šādā kodā:

bool rezultāts = "sieviete" == "sieviete";
cout << result << '\n';

Izeja ir 1 patiesai. Salīdzinājums tiek veikts vārdnīcas veidā, bet ar cipariem vispirms augošā secībā, pirms lielajiem burtiem, kas ir pirms mazajiem burtiem. Šāda koda izvade ir 0, ja vērtība ir “false”.

bool rezultāts = "sieviete" != "sieviete";
cout << result << '\n';

Relāciju operatori ar stīgu literātiem

Relāciju operatori nestrādā ar virknes literāļiem.

Neapstrādāta stīgu burtiskā

Neapstrādāts virknes burtnieks ļauj virkni attēlot kā drukātu, ignorējot aizbēgšanas secības un ievērojot jaunās līnijas. Apsveriet šādu kodu:

char str [] = R "(abc \\ d efg hij
klmn \ n "'opq
pirmais) ";
cout << str << '\n';

Rezultāts ir:

abc \\ d efg hij
klmn \ n "'opq
pirmais

Kodā neapstrādāts virknes burts sākas ar R, kam seko ”un ( . Tas beidzas ar) un “.

C ++ galvenie stīgu literārie veidi

char

Char tips ir sākotnējais C ++ tips, un tas parasti uzglabā rakstzīmi 8 bitos.

char16_t

Tas saglabā rakstzīmi 16 bitos.

char32_t

Tas saglabā rakstzīmi 32 bitos.

wchar_t

char16_t un char32_t ir platas rakstzīmes. wchar_t ir plaša rakstura zīme, kurai ir īpašumtiesības un kuras ir definētas ieviešanā.

Secinājums

Rakstzīmju burtnieks ir viens raksturs atsevišķās pēdiņās. Bēgšanas secība ir raksturs, kas var būt arī atsevišķās pēdiņās. Virknes literālis ir rakstzīmju secība divkāršās pēdiņās. Virknes literālis ir rakstzīmju masīvs, kas beidzas ar \ 0. Vienlīdzības un relāciju operatori strādā ar burtu literāļiem. Vienlīdzības operatori strādā ar stīgu literāļiem, bet relāciju operatori nestrādā ar stīgu literāliem. Rakstzīmju identifikatorus var izmantot salīdzinājumos, bet virkņu identifikatorus nedrīkst izmantot salīdzinājumos. Neapstrādāts virknes literālis ļauj virkni attēlot kā drukātu, ignorējot aizbēgšanas secības un ievērojot jaunās līnijas.

Chrys

Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...