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 vHver 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.
Så
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:
9kvindelige 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,
9Kvinder
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 hanklmn n' 'opq
første) ';
koste<< str << ' n';
Outputtet er:
abc \ d efg hanklmn 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