Hallo, en welkom terug.
We zitten in een nieuwe rubriek.
In deze sectie gaan we: over tekenreeksen gesproken.
Je hebt me waarschijnlijk horen zeggen de woordreeks nogal wat door de hele klas, en
jij misschien een beetje in de war geweest.
Een string is eigenlijk maar een woord.
Het is iets ingesloten tussen dubbele aanhalingstekens.
We gaan het hebben over hoe we kunnen sla tekenreeksen op in tekenreeksen.
Dus tot nu toe zijn we redelijk bekend met een enkel teken,
het gegevenstype char of het gegevenstype "zorg", zoals u dat wilt om het uit te spreken. We weten wat dat is, maar we hebben niet echt
over woorden geleerd.
Een enkel teken toewijzen aan: een char-variabele, het teken is
ingesloten in a paar enkele aanhalingstekens.
We zijn hier bekend mee.
We
hebben hier alles over geleerd. In dit voorbeeld plusteken is gelijk aan plus tussen enkele aanhalingstekens.
Het belangrijkste daar is de enkele aanhalingstekens.
Dat heb je daar ook geleerd wordt een onderscheid gemaakt
tussen enkele aanhalingstekens en dubbele aanhalingstekens.
Dus als je plusteken variabele en je wijst het
iets toe tussen dubbele aanhalingstekens en het plusteken is van het type char, dat
gaat niet werken, omdat je alleen single kunt toewijzen tekens naar het gegevenstype char.
Een tekenreeksconstante of tekenreeksletterlijk is een reeks tekens of symbolen tussen een
paar dubbele aanhalingstekens.
Dus nu zijn dubbele aanhalingstekens er komt een nieuw stuk.
Alles tussen deze dubbele quotes wordt door de compiler
geïnterpreteerd als een string.
En zo kan het echt zijn alfanumerieke tekens, het kunnen speciale
tekens zijn, maar ze meestal verzin je woorden, je kunt het een beetje
als tekst zien.
U kunt spaties hebben.
Maar alles in het dubbel quotes is een letterlijke tekenreeks.
Elke keer dat je hebt weergegeven een bericht met
behulp van de printf-functie, hebben we de . gedefinieerd bericht als een tekenreeksconstante.
Onthoud printf, het eerste argument we plaatsen er wat tekst in en
we hebben enkele formaatspecificaties.
Dat is een snaarmedeklinker.
Je hoort ook de term string letterlijk is het hetzelfde.
Dus we zeggen print f dit is een string alles daartussenin dat
die dubbele aanhalingstekens een stringconstante is en we kunnen het op een of twee regels zetten.
Je merkt ook dat je kunt hebben
print-statements met escape-reeksen backslash n. nutsvoorzieningen deze derde is um best cool, wat ik
zo dadelijk zal uitleggen.
Maar het belangrijkste punt is dat je hebt
om het verschil tussen enkele aanhalingstekens en dubbele te begrijpen citaten en wat erin zit.
Met de dubbele aanhalingstekens, je hebt snaren.
Met de enkele aanhalingstekens, je hebt karakters.
Er zijn twee soorten constanten.
Voor dit derde voorbeeld, deze printf waar we de vier hebben en dan hebben
we een backslash en dan een enkel aanhalingsteken.
Als je echt wilt een enkel aanhalingsteken als
uitvoer weergeeft, moet u eraan ontsnappen.
En je kunt speciaal ontsnappen tekens met behulp van de backslash.
Dus in het derde voorbeeld is het ga
eigenlijk vier dubbele aanhalingstekens afdrukken die je schrijft, en dan nog een dubbele aanhalingsteken.
Dus de compiler interpreteert een expliciete dubbele aanhalingstekens zonder voorafgaande
backslash als tekenreeksscheidingsteken.
Om de andere keer dat u een dubbele gebruikt quote het is het begin en het einde van
een string, maar wat als je dat zou willen? weer te geven, dan moet
je gewoon de backslash ervoor plaatsen.
En het zal de compiler vertellen hey dit beëindigt de string niet echt.
Het is iets dat we willen om weer te geven of
iets dat we als dat teken willen gebruiken.
Je moet ook de ontsnapping gebruiken volgorde als je
ook de backslash wilt doen omdat de backslash is een escape-reeks.
Dus als je de backslash ziet backslash, je geeft die backslash
eigenlijk weer in een printf-functie.
Als je het ergens anders ziet, u wijst de backslash toe aan een
variabele of hoe deze ook wordt gebruikt.
Maar een backslash zelf volgde door een andere backslash zal
de backslash-tekenreeks ontsnappen.
En nogmaals, een backslash en een string geeft altijd het
begin van een escape-reeks aan.
Dus een op zichzelf is niet gaat vertonen.
Dit zijn speciale tekens.
Dus als je tussen dubbele aanhalingstekens staat, je kunt de backslashes zien om
te ontsnappen aan speciale tekens en zelfs de backslash zelf.
Hier is hoe string in het geheugen zit.
Een string in het geheugen is elk afzonderlijk teken wordt
hier weergegeven door een bit.
En dus als je een string hebt genaamd dit is een string, je gaat het zien
waar de ruimte heeft iets in het geheugen.
En je zou ook moeten opmerken bij het einde die backslash nul dat is
de nul-terminator waar we het over gaan hebben.
Maar voor de tweede reeks, nogmaals, je ziet alles wat in het geheugen staat.
Zelfs de backslash n die staat voor een nieuwe regel in het geheugen.
En dan voor jou goed, je zult merk op dat het citaat in het geheugen staat.
Maar de backslash is dat niet.
Omdat de backslash is het afbakenen van het citaat.
Het ontsnapt aan het citaat.
Dus zo ziet het eruit in het geheugen.
Je zou moeten opmerken dat de string in het geheugen heeft altijd minstens één
byte meer voor die backslash nul, wat het nulteken is.
Lijkt ook op het diagram aan de onderkant klopt niet.
U zult merken dat de "jij" hier niet wordt weergegeven dus na het dubbele aanhalingsteken, zie je de
jij daar niet. De jij zou moeten zijn daar ergens en
het is een beetje van toepassing, het is daar ergens waar ze echt zijn laat het gewoon
zien, dit zijn de ASCII-waarden eronder en dan is het gewoon laten zien - niet laten zien, maar u
zou vlak voor rechts zijn.
En daar wil ik het over hebben ongeveer is dit nulteken.
Het is een speciaal karakter met de codewaarde nul.
Het wordt toegevoegd aan het einde van elke string zodat de compiler weet
waar het eindigt en ook wanneer je het uitvoert.
Dit karakter staat bekend als het nul-teken, en je
zet er niet zomaar een nul in je kunt een backslash nul zetten.
En dat zat hierin vorige dia helemaal aan het einde.
En het kan overal zijn eigenlijk in het geheugen.
En afhankelijk van waar het is geheugen, een functie gaat
kijken totdat hij dat ziet backslash nul en het kan het weergeven of
manipuleren als je verschillende tekenreeksfuncties gebruiken.
Het is zeer belangrijk dat nulkarakter.
Een string wordt altijd afgesloten door een null-teken.
Dus de lengte van een string is altijd één groter dan het aantal
tekens in de tekenreeks.
Dit gaat heel belangrijk worden wanneer we wanneer we tekenreeksen gebruiken en
we de grootte van de . specificeren array de arraygrootte zal altijd één
meer moeten zijn dan hoe veel tekens die u wilt
opslaan vanwege dit nulteken.
We hebben ook een concept van null waar we nog niet al
te veel over hebben gesproken.
Het komt meestal in het spel als
we het hebben over pointers, maar verwar de nul niet teken met het sleutelwoord null.
Er is dus een null-trefwoord in een van de include-headers die u kunt gebruiken.
En dit is een symbool dat staat voor een
geheugenadres dat nergens naar verwijst.
Dus je gebruikt het wanneer je wanneer u aanwijzers gebruikt.
Een null-teken is gewoon een string-terminator.
We zullen meer over null praten als we praat over aanwijzingen, maar zorg
ervoor dat u het onderscheid begrijpt tussen: null-teken en het sleutelwoord null.
U kunt een backslash-nulteken toevoegen expliciet aan het einde van een string en
dit zal twee strings creëren en Ik zal je laten zien hoe je dit doet als we
het hebben over het definiëren van tekenreeksen.
Hier is een voorbeeld met de nulterminator.
We hebben hier een print f, en we zeggen het teken en vervolgens de
backslash nul die een tekenreeks beëindigt.
Dus wat er gaat gebeuren is als je compileer
en voer dit programma uit, de uitvoer
die je gaat krijgen is de eerste regel wordt het teken en dan de backslash o er komt een einde aan
en alleen het eerste deel van de string wordt weergegeven.
Meer zal er niet zijn uitvoer omdat print denkt dat dit het einde
van de string is.
Dus het drukt gewoon het personage af.
De uitvoer stopt na die eerste twee woorden omdat de
functie eenmaal stopt met uitvoeren het bereikt het nulteken.
Dus de tweede backslash nul bij de einde van de string, dus ook
al zie je geen backslash nul hier vlak voor het dubbele
aanhalingsteken, direct na de tekenreekspunt, er is er nog steeds een, maar
die wordt nooit bereikt.
Er is dus een impliciete nulterminator aan het einde van de string en de printf zodat hij
weet waar hij moet eindigen.
En als je er nog een toevoegt, is het alleen tot die eerste zal worden weergegeven.
Dus de eerste nulterminator dat is gevonden in de tekenreeks markeert
altijd het einde van de tekenreeks.
Dus begrijp deze null-tekens.
Dit was maar een kort overzicht om te beschrijven wat
een string is en dat te begrijpen strings staan tussen dubbele aanhalingstekens.
En ik wil ook beschrijven het nulteken.
In de volgende lezing zullen we begrijpen wat tekenreeksen zijn
in termen van hoe je kunt creëren deze verschillen dit ene type
variabele om strings op te slaan.
Dank u.