Slik bruker du C ++ String Literal

How Use C String Literal



Datatastaturet har tegn skrevet ut på dem. Når du trykker på en tast, ser du tegnet på skjermen. Merk: mellomrom er også et tegn. En streng bokstavelig er en sekvens av tegn. Denne artikkelen forklarer hvordan du bruker C ++ -strengbokstav. Du bør vite om C ++ - matriser og tips for å forstå denne artikkelen.

Tegn bokstavelig

Et tegn bokstavelig er et tegn i enkelt anførselstegn. Så,







røyeident1= 'TIL'; røyeident2= 'b'; røyeident3= '4'; røyeident4= '6';

er alle forskjellige definisjoner av tegn. Vær oppmerksom på at et siffer i enkle anførselstegn er et tegn og ikke et heltall.



En fluktsekvens som (se nedenfor) i enkle anførselstegn, er et tegn. Så,



røyeident1= '' ';

er en karakter.





Et enkelt symbol i doble anførselstegn er ikke et tegn; det er en streng med ett tegn. Så A eller c eller 2 er ikke et tegn, men er en streng med ett tegn hver.

Variabelen til en røye kan tilordnes senere, senere i programmet, som følger:



røyeident= 'x';
ident= 'OG';

For å stoppe et tegn som er tilordnet en identifikator fra å bli endret, senere i programmet, går du foran definisjonen med det reserverte ordet, const, som følger:

konst røyeident= 'd';

Variabelen, ident sies å være skrivebeskyttet.

String Literal

En streng bokstavelig er en sekvens av tegn i doble anførselstegn. Så,

røyeident1[] = 'Jeg elsker deg'; røyeident2[] = 'Jeg hater 3 av dere'; røyeident3[]
= 'vi er verden'; røyeident4[] = 'Hei Verden!';

er alle forskjellige definisjoner av strenglitteraler. Legg merke til bruken av doble anførselstegn. Det er ingenting som en vanlig variabel for en streng. En streng bokstavelig er en rekke tegn, der sekvensen i stedet for å avgrense med {} er avgrenset med. Tegningene skilles ikke med kommaer. Et hvilket som helst tall større enn antall tegn i strengen bokstavelig talt kan plasseres i firkantede parenteser. Imidlertid er det bedre å la firkantparentesene stå tomme.

Et enkelt tegn i doble anførselstegn er ikke et tegn; det er en streng med ett tegn. Så A eller c eller 2 er ikke et tegn, men en streng med ett tegn hver.

En strengvariabel tillater ikke tildeling av hele bokstaven senere i programmet-se nedenfor. Imidlertid kan individuelle tegn tildeles på nytt-se nedenfor.

Enkelt og dobbelt sitat i karakter eller bokstavelig

For å ha et enkelt sitat som en karakter, gjør noe som,

røyeident= ' '';

For å ha et dobbelt sitat som et tegn i en streng bokstavelig, gjør du noe som

røyeident[] = 'borte'CD';

Bakoverstreken brukes i en rømningssekvens for å unngå konflikt med avgrensere. For å ha et dobbelt sitat som karakter, er det ikke nødvendig med tilbakeslag: ‘‘ er greit. For å ha et enkelt sitat i en streng bokstavelig talt, er det ikke nødvendig med bakoverstreken: ab’cd er greit.

Siden omvendt skråstrek brukes til å unnslippe et tegn, må det unnslippes med et annet omvendt skråstrek når det brukes som et tegn eller i en streng bokstavelig.

Escape Escape

En fluktsekvens er en av:

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

Hver rømningssekvens skrives normalt enten som et tegn i enkelt anførselstegn eller som en rømningssekvens i doble anførselstegn.

  • ’: Brukes som et enkelt sitattegn, innenfor enkelt anførselstegn.
  • : brukes som et dobbelt sitattegn, i bokstav.
  • ? : siden ? er en reservert karakter, bør den unnslippe bokstavelig talt.
  • \: skråstreken bør unnslippe som et tegn eller i en streng bokstavelig, for ikke å resultere i en annen betydning.
  • a: ringer en alarmklokke en gang, når den brukes som et tegn eller i en streng bokstavelig talt.
  • b: resulterer som et bakover i displayet i en streng, bokstavelig talt, og tar av forrige tegn.
  • f: gjør at neste side mates til skriveren når den brukes som et tegn eller i bokstav.
  • r: returnerer markøren, der det neste tegnet skal skrives ut, men innenfor gjeldende linje.
  • n: returnerer markøren til begynnelsen av neste linje eller bare til neste linje, avhengig av operativsystem.
  • t: oppretter en horisontal fane.
  • v: oppretter en vertikal fane.

Operasjoner med tegn

Sammenkobling

Ved definisjon kan to strengbokstaver slås sammen med mellomrom som følger:

røyeident[] = 'abc' 'def';
koste<<ident<< ' n';

Utgangen er: abcdef. Denne definisjonen kan utvides til mer enn to bokstaver. Merk: utsagnet er en definisjon, ikke bare en oppgave. Definisjonen kan til og med fortsette til neste linje med mellomrom som skiller linjene som følger:

røyeident[] = 'abc' 'def'
'ta notat';
koste<<ident<< ' n';

Utgangen er abcdefghi.

Merk: Tegn kan ikke kobles sammen på denne måten, ettersom de enkelte anførselstegnene for tegnet ikke kan ha mer enn ett symbol.

Likestillingsoperatører

Samme tegn i samme sak er like. De er ikke like hvis de ikke er av samme sak. Ta i betraktning,

bool resultat= 'B' == 'B';
koste<<resultat<< ' n';

== betyr lik, mens = betyr tildelt til og ikke lik. Utgangen er 1 for true. Ta i betraktning,

bool resultat= 'B' == 'b';
koste<<resultat<< ' n';

Utgangen er 0 for false. Ta i betraktning,

bool resultat= 'b' == 'c';
koste<<resultat<< ' n';

Utgangen er 0 for false. Ta i betraktning,

bool resultat= 'B' ! = 'B';
koste<<resultat<< ' n';

! = betyr ikke-lik, mens = betyr tildelt-til og ikke-lik. Utgangen er 0 for false. Ta i betraktning,

bool resultat= 'B' ! = 'b';
koste<<resultat<< ' n';

Utgangen er 1 for true. Ta i betraktning,

bool resultat= 'b' ! = 'c';
koste<<resultat<< ' n';

Utgangen er 1 for true.

Så, == og! = Er likestillingsoperatører.

Relasjonelle operatører

For vanlige tegn i C ++, i stigende rekkefølge, kommer tall før store bokstaver, som kommer før små bokstaver.

= forklares på samme måte.

Strengen bokstavelig som et objekt

Arrayen er en konstant peker til begynnelsen av en bestemt datatypesekvens. På samme måte er strengen en konstant peker til begynnelsen av en tegnsekvens. Sammenlign følgende definisjoner:

intarr[] = {3, 4, 5, 6, 7};
røyes. s[] = {'i', 'eller', 'm', 'til', 'n'};
røyestri[] = 'kvinne';

Den første matrisen er en rekke ints og har fem elementer. Den andre og den tredje matrisen er matriser med forskjellige navn, men samme antall elementer. Den andre og tredje matrisen er den samme, men for navnene deres. Tekstinnholdet i det andre arrayet er avgrenset av seler; tegnene er atskilt med kommaer, og hvert tegn er i enkelt anførselstegn. Tekstinnholdet i den tredje matrisen er avgrenset av doble anførselstegn; tegnene er ikke atskilt med komma, og hvert tegn er ikke i enkelt anførselstegn. Den andre og tredje matrisen er to måter å produsere en streng på, den tredje måten er den bedre måten.

arr er en konstant peker til det første elementet i matrisen, noe som betyr at arr alltid vil peke på plasseringen som har heltallet, 3 selv om verdien til 3 er endret. Størrelsen på matrisen, fem elementer, forblir egentlig ikke konstant. Hver av verdiene i matrisen kan imidlertid endres.

str er en konstant peker til det første elementet i matrisen, noe som betyr at str alltid vil peke på at stedet har tegnet, 'w', selv om verdien av 'w' er endret. Størrelsen på tegnserien, fem elementer, forblir egentlig ikke konstant. Hver av verdiene til det bokstavelige kan imidlertid endres.

stri er en konstant peker til det første elementet i sin bokstavelige (matrise), noe som betyr at stri alltid vil peke på stedet som har tegnet, w selv om verdien av w er endret. Størrelsen på strengen literal (array), fem elementer, forblir egentlig ikke konstant. Hver av verdiene til bokstavene kan imidlertid endres.

Hva er konstant i en matrise eller streng bokstavelig? Minneadressen til det første elementet i matrisen eller bokstaven forblir som verdien av navnet (identifikatoren) for matrisen eller bokstavelig, og kan ikke endres. Vel, størrelsen på matrisen eller bokstavelig talt forblir egentlig ikke konstant. Hver verdi i matrisen eller bokstavelig kan endres. Følgende kode viser hvordan det fjerde elementet i hver av matrisene har blitt endret:

intarr[] = {3, 4, 5, 6, 7};
røyes. s[] = {'i', 'eller', 'm', 'til', 'n'};
røyestri[] = 'kvinne';

arr[3] = 9;
s. s[3] = 'Og';
stri[3] = 'Og';

koste<<arr[3] << ' n';
koste<<s. s<< ' n';
koste<<stri<< ' n';

Utgangen er:

9
kvinnekvinner
kvinner

Vær oppmerksom på at elementene i en definert streng bokstavelig, som for den tredje definisjonen ovenfor, kan nås med matrisindeksen (abonnement). Årsaken til den andre linjen i utgangen er gitt nedenfor.

Definisjon Abonnement

Vær oppmerksom på at i definisjonene ovenfor er det ikke noe heltall for abonnement. Når antall elementer ikke lett kan bestemmes av programmereren, bør heltallet for abonnementet utelates. Uansett hva som er tilfellet, skal ikke heltallet være mindre enn antall elementer i matrisen.

For strengen bokstavelig talt skal heltallet være minst 1 høyere enn antall tegn i strengen. Dette er fordi nulltegnet ( 0) alltid legges til av kompilatoren, på slutten av en matrise som er en streng, avgrenset av doble anførselstegn. Nulltegnet legges ikke til på slutten av den andre rekken ovenfor, fordi det ikke er en offisiell streng. Den tredje serien er en offisiell streng. Følgende kode viser minimumsabonnementsverdiene.

intarr[5] = {3, 4, 5, 6, 7};
røyes. s[5] = {'i', 'eller', 'm', 'til', 'n'};
røyestri[6] = 'kvinne';

For å gjøre den andre definisjonen til en offisiell streng, må nulltegnet legges til som følger:

intarr[5] = {3, 4, 5, 6, 7};
røyes. s[6] = {'i', 'eller', 'm', 'til', 'n', ' 0'};
røyestri[6] = 'kvinne';

Utgangen skal nå være,

9
kvinner
kvinner

uten de andre kvinnene. Vær oppmerksom på at den tilsvarende abonnementet for den andre matrisen er 6, og ikke 5 som den var.

Konstant bokstavelige verdier

For å stoppe et hvilket som helst tegn i de doble anførselstegnene som er tilordnet en identifikator fra å bli endret, senere ned i programmet, går du foran definisjonen med det reserverte ordet, const, som følger:

konst røyeident[] = 'Jeg elsker deg';

Operasjoner med strenglitteratur

Likestillingsoperasjoner

Likestillingsoperatørene er == og! =. Når variabler (identifikatorer) for to strenger sammenlignes, er det pekene (adressene) til bokstavene som ender opp med å bli sammenlignet; det er feil. For å sammenligne strenger må bokstavene sammenlignes, som i følgende kode:

bool resultat= 'kvinne' == 'kvinne';
koste<<resultat<< ' n';

Utgangen er 1 for true. Sammenligningen gjøres på ordbok, men med tall som kommer først i stigende rekkefølge, før store bokstaver, som kommer før små bokstaver. Utdataene fra følgende kode er 0, for false.

bool resultat= 'kvinne' ! = 'kvinne';
koste<<resultat<< ' n';

Relasjonsoperatører med strenglitteratur

Relasjonsoperatører jobber ikke med strengbokstaver.

Raw String Literal

En rå streng bokstavelig, lar en streng vises som skrevet, ignorere fluktsekvenser og respektere nye linjer. Vurder følgende kode:

røyes. s[] =R'(abc\d efg han
klmn n'
'opq
første) ';
koste<< str << '
n';

Utgangen er:

abc \ d efg han
klmn n'' opq
første

I koden begynner den rå strengen bokstavelig talt med R, etterfulgt av og (. Den ender med) og.

C ++ hovedstreng bokstavelige typer

røye

Røyetypen er den originale C ++ - typen og vil vanligvis lagre et tegn i 8 bits.

char16_t

Dette lagrer et tegn i 16 biter.

char32_t

Dette lagrer et tegn i 32 bits.

wchar_t

char16_t og char32_t er brede tegn. wchar_t er et bredt tegn som er proprietær og implementeringsdefinert.

Konklusjon

En bokstav er et enkelt tegn i enkle anførselstegn. En fluktsekvens er et tegn som også kan være i enkelt anførselstegn. En streng bokstavelig er en sekvens av tegn i doble anførselstegn. En streng litteral er en rekke tegn som slutter med 0. Likestillings- og relasjonsoperatørene jobber med karakterbokstaver. Likestillingsoperatørene jobber med strenglitteraler, men relasjonsoperatørene jobber ikke med strenglitteraler. Tegnidentifikatorer kan brukes i sammenligninger, men strengidentifikatorer bør ikke brukes i sammenligninger. En rå streng betyr at en streng kan vises som skrevet, ignorerer fluktsekvensene og respekterer nye linjer.

Chrys