Sådan bruges C ++ String Literal

How Use C String Literal

Computertastaturet har tegn trykt på dem. Når du trykker på en tast, ser du tegnet på skærmen. Bemærk: mellemrum er også et tegn. En streng bogstavelig er en sekvens af tegn. Denne artikel forklarer, hvordan du bruger C ++ strenglitteraler. Du bør vide om C ++ - arrays og tips til at forstå denne artikel.

Karakter bogstavelig

En bogstavelig bogstav er et tegn i enkelte citater. Så,







forkælelseident1= 'TIL'; forkælelseident2= 'b'; forkælelseident3= '4'; forkælelseident4= '6';

er alle forskellige definitioner af tegn. Bemærk, at et ciffer i enkelte anførselstegn er et tegn og ikke et helt tal.



En escape -sekvens som (se nedenfor) i enkelte anførselstegn er et tegn. Så,



forkælelseident1= '' ';

er en karakter.





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

Variablen for en røg kan tildeles senere, senere i programmet, som følger:



forkælelseident= 'x';
ident= 'OG';

For at forhindre, at et tegn, der er tildelt en identifikator, ændres senere i programmet, går definitionen foran med det reserverede ord, const, som følger:

konst forkælelseident= 'd';

Variablen, ident siges at være skrivebeskyttet.

String bogstavelig

En streng er en bogstavsekvens i dobbelte anførselstegn. Så,

forkælelseident1[] = 'Jeg elsker dig'; forkælelseident2[] = 'Jeg hader 3 af jer'; forkælelseident3[]
= 'vi er verden'; forkælelseident4[] = 'Hej Verden!';

er alle forskellige definitioner af strenglitteraler. Bemærk brugen af ​​dobbelte citater. Der er intet som en almindelig variabel for en streng. En streng bogstavelig er en matrix af tegninger, hvor sekvensen i stedet for at afgrænse med {} er afgrænset med. Tegningerne er ikke adskilt af kommaer. Ethvert tal, der er større end antallet af tegn i strengen bogstaveligt, kan placeres i firkantede parenteser. Det er dog bedre at lade firkantede parenteser stå tomme.

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

En strengvariabel tillader ikke tildeling af hele bogstavet senere i programmet-se nedenfor. Individuelle tegn kan dog tildeles igen-se nedenfor.

Enkelt og dobbelt citat i karakter eller bogstaveligt

For at have et enkelt citat som en karakter, gør noget i stil med,

forkælelseident= ' '';

For at have et dobbelt citat som et tegn i en streng bogstaveligt, gør noget som,

forkælelseident[] = 'væk'CD';

Tilbage skråstreg bruges i en flugtsekvens for at undgå konflikt med afgrænsere. For at have et dobbelt citat som en karakter, er der ikke behov for omvendt skråstreg: ‘‘ er i orden. For at have et enkelt citat i en streng bogstaveligt talt er der ikke behov for omvendt skråstreg: ab’cd er i orden.

Da omvendt skråstreg bruges til at undslippe et tegn, skal det undslippes med et andet skråstreg, når det bruges som et tegn eller i en streng bogstaveligt.

Escape -sekvens

En flugtsekvens er en af:

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

Hver escape-sekvens skrives normalt enten som et tegn inden for enkelte citater eller som en escape-sekvens inden for dobbelte anførselstegn.

  • ’: Bruges som et enkelt citattegn inden for enkelte anførselstegn.
  • : bruges som et dobbelt citattegn inden for en bogstavelig.
  • ? : siden? er en reserveret karakter, bør den undslippes bogstaveligt.
  • \: backslash bør undslippe som et tegn eller i en streng bogstaveligt, for ikke at resultere i en anden betydning.
  • a: lyder en alarmklokke en gang, når den bruges som et tegn eller inden for en streng bogstaveligt.
  • b: resulterer som en backspace i displayet inden for en streng bogstavelig, hvilket fjerner det forrige tegn.
  • f: får den næste side til at blive ført til printeren, når den bruges som et tegn eller inden for en bogstavelig tekst.
  • r: returnerer markøren, hvor det næste tegn skal udskrives, men inden for den aktuelle linje.
  • n: vender markøren tilbage til begyndelsen af ​​den næste linje eller bare til den næste linje, afhængigt af operativsystemet.
  • t: opretter en vandret fane.
  • v: opretter en lodret fane.

Operationer med tegn

Sammenkædning

Ved definition kan to strenglitteraler sættes sammen med mellemrum som følger:

forkælelseident[] = 'abc' 'def';
koste<<ident<< ' n';

Outputtet er: abcdef. Denne definition kan udvides til mere end to bogstaver. Bemærk: udsagnet er en definition, ikke kun en opgave. Definitionen kan endda fortsætte til den næste linje med mellemrum, der adskiller linjerne som følger:

forkælelseident[] = 'abc' 'def'
'tage til efterretning';
koste<<ident<< ' n';

Outputtet er, abcdefghi.

Bemærk: Tegn kan ikke sammenkædes på denne måde, da de enkelte anførselstegn for tegnet ikke kan have mere end ét symbol.

Lighedsoperatører

Samme tegn i samme sag er ens. De er ikke lige, hvis de ikke er af samme sag. Overveje,

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

== betyder lig, mens = betyder tildelt til og ikke lig. Outputtet er 1 for sandt. Overveje,

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

Outputtet er 0 for falsk. Overveje,

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

Outputtet er 0 for falsk. Overveje,

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

! = betyder ikke-lige, mens = betyder tildelt til og ikke ikke-lige. Outputtet er 0 for falsk. Overveje,

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

Outputtet er 1 for sandt. Overveje,

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

Outputtet er 1 for sandt.

Så == og! = Er ligestillingsoperatorer.

Relationsoperatører

For almindelige tegn i C ++, i stigende rækkefølge, kommer tal før store bogstaver, som kommer før små bogstaver.

= forklares på samme måde.

Strengen bogstavelig som objekt

Arrayen er en konstant markør til begyndelsen af ​​en bestemt datatypesekvens. På samme måde er strengen en konstant markør til begyndelsen af ​​en tegnsekvens. Sammenlign følgende definitioner:

intarr[] = {3, 4, 5, 6, 7};
forkælelses[] = {'i', 'eller', 'm', 'til', 'n'};
forkælelsestri[] = 'kvinde';

Det første array er et array af ints og har fem elementer. Det andet og tredje arrays er arrays af tegninger med forskellige navne, men det samme antal elementer. Den anden og tredje arrays er de samme, men for deres navne. Tekstindholdet i det andet array er afgrænset af seler; tegnene adskilles med kommaer, og hvert tegn er i enkelte anførselstegn. Tekstindholdet i det tredje array er afgrænset af dobbelt anførselstegn; tegnene er ikke adskilt med kommaer, og hvert tegn er ikke i enkelte anførselstegn. Det andet og tredje arrays er to måder at producere en streng på, hvor den tredje måde er den bedre måde.

arr er en konstant markør til det første element i dets array, hvilket betyder, at arr altid vil pege på det sted, der har heltalet, 3, selvom værdien af ​​3 ændres. Størrelsen af ​​arrayet, fem elementer, forbliver ikke rigtig konstant. Hver af værdierne i arrayet kan dog ændres.

str er en konstant markør til det første element i dets array, hvilket betyder, at str altid vil pege på, at placeringen har karakteren, 'w', selvom værdien af ​​'w' ændres. Størrelsen af ​​karakterarrayet, fem elementer, forbliver ikke rigtig konstant. Hver af værdierne i bogstavet kan dog ændres.

stri er en konstant markør til det første element i dets bogstavelige (array), hvilket betyder, at stri altid vil pege på det sted, der har karakteren, w selvom værdien af ​​w ændres. Størrelsen af ​​strengen letteral (array), fem elementer, forbliver ikke rigtig konstant. Hver af værdierne i bogstavet kan imidlertid ændres.

Hvad er konstant i en matrix eller streng bogstaveligt? Hukommelsesadressen for det første element i matrixen eller bogstavet forbliver som værdien af ​​arrayets eller identitetens navn (identifikator) og kan ikke ændres. Nå, størrelsen af ​​arrayet eller bogstavelig talt forbliver ikke rigtig konstant. Hver værdi i arrayet eller bogstavelig kan ændres. Følgende kode viser, hvordan det fjerde element i hvert af arrays er blevet ændret:

intarr[] = {3, 4, 5, 6, 7};
forkælelses[] = {'i', 'eller', 'm', 'til', 'n'};
forkælelsestri[] = 'kvinde';

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

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

Outputtet er:

9
kvindelige kvinder
Kvinder

Bemærk, at elementerne i en defineret streng bogstaveligt, ligesom for den tredje definition ovenfor, kan tilgås med matrixindekset (subscript). Årsagen til den anden linje i output er angivet nedenfor.

Definition Abonnement

Bemærk, at der i ovenstående definitioner ikke er noget heltal for abonnement. Når antallet af elementer ikke let kan bestemmes af programmereren, skal heltalet for abonnementet udelades. Uanset hvad der er tilfældet, bør heltalet ikke være mindre end antallet af elementer i arrayet.

For strengen bogstaveligt skal heltalet være mindst 1 højere end antallet af tegn i strengen. Dette skyldes, at nulltegnet ( 0) altid tilføjes af kompilatoren i slutningen af ​​en matrix, der er en streng, afgrænset af dobbelte anførselstegn. Nulltegnet tilføjes ikke i slutningen af ​​det andet array ovenfor, fordi det ikke er en officiel streng. Det tredje array er en officiel streng. Følgende kode viser minimumsabonnementsværdierne.

intarr[5] = {3, 4, 5, 6, 7};
forkælelses[5] = {'i', 'eller', 'm', 'til', 'n'};
forkælelsestri[6] = 'kvinde';

For at gøre den anden definition til en officiel streng, skal nultegnet tilføjes som følger:

intarr[5] = {3, 4, 5, 6, 7};
forkælelses[6] = {'i', 'eller', 'm', 'til', 'n', ' 0'};
forkælelsestri[6] = 'kvinde';

Outputtet skal nu være,

9
Kvinder
Kvinder

uden de anden kvinder. Bemærk, at det tilsvarende abonnement for det andet array er 6, og ikke 5 som det var.

Konstante bogstavelige værdier

For at stoppe ethvert tegn i de dobbelte anførselstegn, der er tildelt en identifikator, fra at blive ændret, senere ned i programmet, går definitionen foran med det reserverede ord, const, som følger:

konst forkælelseident[] = 'Jeg elsker dig';

Operationer med strengelitteratur

Ligestillingsoperationer

Lighedsoperatørerne er == og! =. Når variabler (identifikatorer) for to strenge sammenlignes, er det pointerne (adresserne) på bogstaverne, der ender med at blive sammenlignet; det er forkert. For at sammenligne strenge skal bogstavene sammenlignes som i følgende kode:

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

Outputtet er 1 for sandt. Sammenligningen sker på ordbogsmæssig vis, men med tal, der kommer først i stigende rækkefølge, før store bogstaver, der kommer før små bogstaver. Outputtet af følgende kode er 0, for false.

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

Relationsoperatører med strenglitteratur

Relationsoperatører arbejder ikke med strenglitteraler.

Rå streng bogstavelig

En rå streng bogstavelig, gør det muligt at vise en streng som skrevet, idet der ignoreres flugtsekvenser og respekt for nye linjer. Overvej følgende kode:

forkælelses[] =R'(abc\d efg han
klmn n'
'opq
første) ';
koste<< str << '
n';

Outputtet er:

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

I koden begynder den rå streng bogstaveligt med R, efterfulgt af og (. Den slutter med) og.

C ++ Hovedstreng Bogstavelige typer

forkælelse

Char -typen er den originale C ++ -type og vil typisk gemme et tegn i 8 bits.

char16_t

Dette gemmer et tegn i 16 bits.

char32_t

Dette gemmer et tegn i 32 bit.

wchar_t

char16_t og char32_t er brede tegn. wchar_t er en bred karakter, der er proprietær og implementeringsdefineret.

Konklusion

En bogstavelig bogstav er et enkelt tegn i enkelte citater. En flugtsekvens er et tegn, der også kan være i enkelte anførselstegn. En streng bogstavelig er en sekvens af tegn i dobbelte anførselstegn. En streng bogstavelig er en matrix af tegn, der slutter med 0. Ligestillings- og relationelle operatører arbejder med karakterbogstaver. Ligestillingsoperatørerne arbejder med strenglitteraler, men de relationelle operatører arbejder ikke med strenglitteraler. Tegnidentifikatorer kan bruges i sammenligninger, men strengidentifikatorer bør ikke bruges i sammenligninger. En rå streng betyder, at en streng kan vises som indtastet, idet ignorering af flugtsekvenserne og respekt for nye linjer.

Chrys