Kuinka käyttää C ++ String Literalia

How Use C String Literal

Tietokoneen näppäimistöllä on merkkejä. Kun painat näppäintä, näet merkin näytöllä. Huomaa: välilyönti on myös merkki. Merkkijonokirjain on merkkijono. Tässä artikkelissa kerrotaan, miten C ++ merkkijonoja käytetään. Sinun pitäisi tietää C ++ - matriiseista ja osoittimista ymmärtääksesi tämän artikkelin.

Kirjainmerkki

Merkkikirjain on merkki yksittäisissä lainauksissa. Niin,



hiiltyätunnus 1= 'TO'; hiiltyäident2= 'b'; hiiltyäident3= '4'; hiiltyäident4= '6';

ovat kaikki erilaisia ​​hahmojen määritelmiä. Huomaa, että yksittäisissä lainausmerkeissä oleva numero on merkki eikä kokonaisluku.



Poistumisjärjestys, kuten (katso alla) yksittäisissä lainausmerkeissä, on merkki. Niin,



hiiltyätunnus 1= '' '';

on hahmo.

Yksi symboli lainausmerkeissä ei ole merkki; se on yhden merkin merkkijono. Joten A tai c tai 2 ei ole merkki, vaan merkkijono, jossa jokaisessa on yksi merkki.

Char -muuttujan voi määrittää uudelleen myöhemmin ohjelmassa seuraavasti:



hiiltyäident= 'x';
ident= 'JA';

Jos haluat estää tunnisteelle määritetyn merkin muuttamisen, myöhemmin ohjelmassa, edellytä määritelmää varatulla sanalla const seuraavasti:

const hiiltyäident= 'd';

Muuttujan ident sanotaan olevan vain luku.

Kirjaimellinen merkkijono

Merkkijonokirjain on merkkijono lainausmerkeissä. Niin,

hiiltyätunnus 1[] = 'Minä rakastan sinua'; hiiltyäident2[] = 'Vihaan 3 teitä'; hiiltyäident3[]
= 'me olemme maailma'; hiiltyäident4[] = 'Hei maailma!';

ovat kaikki merkkijonojen määritelmiä. Huomaa lainausmerkkien käyttö. Merkkijonolle ei ole mitään tavallisen muuttujan kaltaista. Merkkijono -literaali on merkkijono, jossa {} -erottamisen sijaan sekvenssi on erotettu. Merkkejä ei eroteta pilkuilla. Mikä tahansa luku, joka on suurempi kuin merkkijonon literaalien määrä, voidaan sijoittaa hakasulkeisiin. On kuitenkin parempi jättää hakasulkeet tyhjäksi.

Yksi merkki lainausmerkeissä ei ole merkki; se on yhden merkin merkkijono. Joten A tai c tai 2 ei ole merkki, vaan merkkijono, jossa jokaisessa on yksi merkki.

Merkkijonomuuttuja ei salli koko kirjaimen uudelleenmäärittämistä myöhemmin ohjelmassa-katso alla. Yksittäisiä merkkejä voidaan kuitenkin määrittää uudelleen-katso alla.

Yksittäinen ja kaksinkertainen lainausmerkki tai kirjain

Jos haluat saada yhden lainauksen hahmona, tee esimerkiksi

hiiltyäident= '' ''';

Jos haluat lainausmerkin merkkijonon kirjaimena, tee jotain,

hiiltyäident[] = 'pois'CD'';

Kääntöviivaa käytetään poistumisjärjestyksessä, jotta vältetään ristiriidat erottimien kanssa. Jos haluat käyttää lainausmerkkiä hahmona, takaviivaa ei tarvita: '' on kunnossa. Jos merkkijonossa on vain yksi lainaus, käänteisviivaa ei tarvita: ab’cd on kunnossa.

Koska käänteisviivaa käytetään paetakseen merkkiä, se on poistettava toisella vinoviivalla, kun sitä käytetään merkkinä tai merkkijonona.

Pakoputki

Pakosarja on yksi seuraavista:

''? \ kohdalle b f n r> t v

Jokainen pakosarja kirjoitetaan normaalisti joko merkkinä yksittäisten lainausmerkkien sisällä tai poistumisjaksona kaksoislainausmerkkien sisällä.

  • ’: Käytetään yhtenä lainausmerkkinä yksittäisten lainausmerkkien sisällä.
  • : käytetään lainausmerkkinä kirjaimessa.
  • ? : siitä asti kun ? on varattu merkki, se on poistettava kirjaimella.
  • \: käänteinen vinoviiva on poistettava merkkinä tai merkkijonona, jotta siitä ei aiheutuisi muuta merkitystä.
  • a: soi hälytyskellon kerran, kun sitä käytetään merkkinä tai merkkijonon sisällä.
  • b: tulos näkyy askelpalautuksena näytön merkkijonon sisällä ja poistaa edellisen merkin.
  • f: seuraava sivu syötetään tulostimeen, kun sitä käytetään merkkinä tai kirjaimena.
  • r: palauttaa kohdistimen, johon seuraava merkki tulostetaan, mutta nykyisellä rivillä.
  • n: palauttaa kohdistimen seuraavan rivin alkuun tai vain seuraavalle riville käyttöjärjestelmästä riippuen.
  • t: luo vaakasuoran välilehden.
  • v: luo pystysuoran välilehden.

Toiminnot merkkien kanssa

Ketjutus

Määritelmän mukaan kaksi merkkijonoa voidaan yhdistää välilyönnillä seuraavasti:

hiiltyäident[] = 'abc' 'def';
kustannus<<ident<< '' n'';

Tulos on: abcdef. Tätä määritelmää voidaan laajentaa useampaan kuin kahteen kirjaimeen. Huomaa: lause on määritelmä, ei vain tehtävä. Määritelmä voi jatkua jopa seuraavaan riviin välilyönnillä, joka erottaa rivit seuraavasti:

hiiltyäident[] = 'abc' 'def'
'pistä muistiin';
kustannus<<ident<< '' n'';

Tulos on, abcdefghi.

Huomautus: Merkkejä ei voi yhdistää toisiinsa tällä tavalla, koska merkin yksittäisissä lainausmerkeissä ei saa olla enemmän kuin yksi symboli.

Tasa -arvo -operaattorit

Samat merkit samassa tapauksessa ovat samanarvoisia. Ne eivät ole samanarvoisia, jos ne eivät ole samasta tapauksesta. Harkitse,

bool tulos= 'B' == 'B';
kustannus<<tulos<< '' n'';

== tarkoittaa yhtä, kun taas = tarkoittaa osoitettua ja ei yhtä. Tulos on 1 tosi. Harkitse,

bool tulos= 'B' == 'b';
kustannus<<tulos<< '' n'';

Tulos on 0 epätosi. Harkitse,

bool tulos= 'b' == 'c';
kustannus<<tulos<< '' n'';

Tulos on 0 epätosi. Harkitse,

bool tulos= 'B' ! = 'B';
kustannus<<tulos<< '' n'';

! = tarkoittaa ei-tasa-arvoa, kun taas = tarkoittaa sitä, että se on osoitettu ja ei ole tasavertainen. Tulos on 0 epätosi. Harkitse,

bool tulos= 'B' ! = 'b';
kustannus<<tulos<< '' n'';

Tulos on 1 tosi. Harkitse,

bool tulos= 'b' ! = 'c';
kustannus<<tulos<< '' n'';

Tulos on 1 tosi.

Joten == ja! = Ovat tasa -arvooperaattoreita.

Suhteelliset toimijat

C ++: n tavallisissa merkeissä nousevassa järjestyksessä numerot tulevat ennen isoja kirjaimia ja pieniä kirjaimia.

Niin= selitetään samalla tavalla.

Jousikirjain esineenä

Taulukko on vakio -osoitin tietyn tietotyyppisen jakson alkuun. Samoin merkkijono on vakio -osoitin merkkisarjan alkuun. Vertaa seuraavia määritelmiä:

intarr[] = {3, 4, 5, 6, 7};
hiiltyäs[] = {'sisään', 'tai', 'm', '', 'n'};
hiiltyästri[] = 'nainen';

Ensimmäinen ryhmä on ints -ryhmä ja siinä on viisi elementtiä. Toinen ja kolmas matriisi ovat merkkijonoja, joilla on eri nimet, mutta sama määrä elementtejä. Toinen ja kolmas matriisi ovat samat, mutta niiden nimet. Toisen taulukon tekstisisältö on rajattu aaltosulkeilla; merkit on erotettu pilkuilla ja jokainen merkki on lainausmerkeissä. Kolmannen taulukon tekstisisältö rajataan lainausmerkeillä; merkkejä ei eroteta pilkuilla, eikä jokainen merkki ole lainausmerkeissä. Toinen ja kolmas matriisi ovat kaksi tapaa tuottaa merkkijono, ja kolmas tapa on parempi tapa.

arr on vakio -osoitin taulukon ensimmäiselle elementille, mikä tarkoittaa, että arr osoittaa aina paikkaan, jolla on kokonaisluku, 3 vaikka arvoa 3 muutettaisiin. Taulukon koko, viisi elementtiä, ei todellakaan pysy vakiona. Joukon jokaista arvoa voidaan kuitenkin muuttaa.

str on vakio -osoitin taulukon ensimmäiseen elementtiin, mikä tarkoittaa, että str osoittaa aina paikkaan, jossa on merkki w, vaikka w: n arvoa muutettaisiin. Merkkiryhmän, viiden elementin, koko ei todellakaan pysy vakiona. Kuitenkin jokainen literaalin arvo voidaan muuttaa.

stri on vakio -osoitin sen kirjaimen (matriisin) ensimmäiseen elementtiin, mikä tarkoittaa, että stri osoittaa aina paikkaan, jolla on merkki w, vaikka w: n arvoa muutettaisiin. Viiden elementin merkkijonon literaalin (array) koko ei todellakaan pysy vakiona. Kutakin literaalin arvoa voidaan kuitenkin muuttaa.

Mikä on vakio taulukossa tai merkkijonossa? Taulukon tai literaalin ensimmäisen elementin muistiosoite säilyy taulukon tai literaalin nimen (tunnuksen) arvona, eikä sitä voi muuttaa. No, taulukon tai kirjaimen koko ei todellakaan pysy vakiona. Jokainen taulukon tai literaalin arvo voidaan muuttaa. Seuraava koodi näyttää kuinka kunkin taulukon neljäs elementti on muutettu:

intarr[] = {3, 4, 5, 6, 7};
hiiltyäs[] = {'sisään', 'tai', 'm', '', 'n'};
hiiltyästri[] = 'nainen';

arr[3] = 9;
s[3] = 'Ja';
stri[3] = 'Ja';

kustannus<<arr[3] << '' n'';
kustannus<<s<< '' n'';
kustannus<<stri<< '' n'';

Lähtö on:

9
naisnaiset
naiset

Huomaa, että määritetyn merkkijonon literaalin elementit, kuten yllä oleva kolmas määritelmä, voidaan käyttää taulukkoindeksillä (alaindeksi). Lähdön toisen rivin syy on esitetty alla.

Määritelmä Alaindeksi

Huomaa, että yllä olevissa määritelmissä alaindeksille ei ole kokonaislukua. Jos ohjelmoija ei pysty helposti määrittämään elementtien määrää, alaindeksin kokonaisluku tulee jättää pois. Olipa tapaus mikä tahansa, kokonaisluku ei saa olla pienempi kuin matriisin elementtien lukumäärä.

Merkkijonon kirjaimessa kokonaisluvun on oltava vähintään 1 suurempi kuin merkkijonon merkkimäärä. Tämä johtuu siitä, että kääntäjä lisää aina nollamerkin ( 0) taulukon loppuun, joka on merkkijono ja joka on rajattu lainausmerkeillä. Null -merkkiä ei lisätä yllä olevan toisen taulukon loppuun, koska se ei ole virallinen merkkijono. Kolmas ryhmä on virallinen merkkijono. Seuraava koodi näyttää alaindeksin vähimmäisarvot.

intarr[5] = {3, 4, 5, 6, 7};
hiiltyäs[5] = {'sisään', 'tai', 'm', '', 'n'};
hiiltyästri[6] = 'nainen';

Jotta toinen määritelmä olisi virallinen merkkijono, tyhjä merkki on lisättävä seuraavasti:

intarr[5] = {3, 4, 5, 6, 7};
hiiltyäs[6] = {'sisään', 'tai', 'm', '', 'n', '' 0''};
hiiltyästri[6] = 'nainen';

Tuloksen pitäisi nyt olla,

9
naiset
naiset

ilman kahta naista. Huomaa, että toista alaryhmää vastaava alaindeksi on 6 eikä 5 sellaisenaan.

Jatkuvia kirjallisia arvoja

Jos haluat estää tunnisteen määrittämien kaksoislainausmerkkien muokkaamisen, myöhemmin ohjelmassa, edellytä määritelmää varatulla sanalla const seuraavasti:

const hiiltyäident[] = 'Minä rakastan sinua';

Toiminnot merkkijonojen avulla

Tasa -arvo -operaatiot

Tasa -arvooperaattorit ovat == ja! =. Kun kahden merkkijonon muuttujia (tunnisteita) verrataan, vertaillaan lopulta literaalien osoittimia (osoitteita); tuo on väärin. Merkkijonojen vertaamiseksi literaaleja on verrattava seuraavan koodin mukaisesti:

bool tulos= 'nainen' == 'nainen';
kustannus<<tulos<< '' n'';

Tulos on 1 tosi. Vertailu tehdään sanakirjamuotoa käyttäen, mutta numerot tulevat ensin nousevassa järjestyksessä ennen isoja kirjaimia, jotka tulevat ennen pieniä kirjaimia. Seuraavan koodin tulos on 0, jos arvo on epätosi.

bool tulos= 'nainen' ! = 'nainen';
kustannus<<tulos<< '' n'';

Suhdeoperaattorit merkkijonoilla

Suhteelliset operaattorit eivät toimi merkkijonojen kanssa.

Raaka merkkijono

Raaka merkkijono -literaali mahdollistaa merkkijonon näyttämisen kirjoitettuna, jättäen huomiotta pakosarjat ja kunnioittaen uusia rivejä. Harkitse seuraavaa koodia:

hiiltyäs[] =R'(abc\d efg hän
klmn n''
'opq
ensimmäinen) ';
kustannus<< str << '
n'';

Lähtö on:

abc \ d efg hän
klmn n'' opq
ensimmäinen

Koodissa raaka merkkijono -literaali alkaa R: llä, jota seuraa ja (. Se päättyy) ja.

C ++ -merkkijonotyypit

hiiltyä

Char -tyyppi on alkuperäinen C ++ -tyyppi, ja se tallentaa tyypillisesti merkin 8 bittiin.

char16_t

Tämä tallentaa merkin 16 bittiin.

char32_t

Tämä tallentaa merkin 32 bittiin.

wchar_t

char16_t ja char32_t ovat leveitä merkkejä. wchar_t on laaja merkki, joka on oma ja toteutuksen määrittämä.

Johtopäätös

Merkkikirjain on yksittäinen lainausmerkki. Poistumisjärjestys on merkki, joka voi olla myös yksittäisissä lainausmerkeissä. Merkkijonokirjain on kaksoislainausmerkkijono. Merkkijonokirjain on merkkijono, joka päättyy 0: een. Tasa -arvo- ja suhdeoperaattorit toimivat merkkikirjojen kanssa. Tasa -arvo -operaattorit työskentelevät merkkijonojen kanssa, mutta relaatio -operaattorit eivät toimi merkkijonojen kanssa. Merkkitunnisteita voidaan käyttää vertailuissa, mutta merkkijonotunnisteita ei tule käyttää vertailuissa. Raaka merkkijono -literaali mahdollistaa merkkijonon näyttämisen kirjoitettuna, jättäen huomiotta pakosarjat ja kunnioittaen uusia rivejä.

Chrys