7. String
Last updated
Last updated
In het hoofdstuk Variabelen heb je het datatype string al eerder gezien. In dit hoofdstuk ga je nog meer leren over strings. Variabelen van het type string bevatten stukken tekst. Er worden aanhalingstekens " "
gebruikt om het begin en einde van een stuk tekst aan te geven.
Om strings te kunnen gebruiken moet je de library <string>
toevoegen aan het begin van je programma.
Een voorbeeld:
Je kan een string zien als een array met karakters:
De string start bij index 0. Je kan een specifieke letter in een string dus ook op dezelfde manier selecteren als je dit geleerd hebt in het hoofdstuk Arrays, namelijk met de vierkante haken [ ].
De eerste letter uit de zin kan je selecteren met:
cout << zin[0];
De tweede letter kan je selecteren met:
cout << zin[1];
Opdracht 7.1
Met welke code kan je de laatste letter uit de zin selecteren.
Tip: gebruik de functie length om de lengte van de string te bepalen: zin.length()
Opdracht 7.2
Schrijf een programma dat een zin inleest en als uitvoer de letters uit de zin onder elkaar afdrukt.
Bijvoorbeeld:
Invoer: Hallo
Uitvoer:
H
a
l
l
o
Tip 1: gebruik een for-lus.
Tip 2: de functie cin
leest alles in wat de gebruiker typt tot de spatie. Met strings wil je soms ook de spatie inlezen, dit kan met de code:
getline (cin, zin);
Opdracht 7.3
Schrijf een programma dat een zin inleest en als uitvoer de zin achterstevoren afdrukt.
Bijvoorbeeld:
Invoer: aardbei
Uitvoer: iebdraa
Met de operator + kan je 2 of meerdere strings samenvoegen. Bijvoorbeeld:
voornaam = "Noor";
achternaam = "Vis";
volledigenaam = voornaam + " " + achternaam
Opdracht 7.4 Probeer onderstaande code uit. Kun je het verschil verklaren?
Char is het datatype voor een enkel teken. Dit teken staat tussen enkele aanhalingstekens ' '. Bijvoorbeeld: char letter= 'A';
Elk teken kan vertaald worden naar een getal, door middel van unicode. Unicode is een internationale standaard voor de codering tussen tekens/symbolen en getallen.
Hieronder de decimale waardes van ons alfabet:
Van deze standaard codering kunnen we gebruik van maken in C++.
Hieronder een aantal voorbeelden:
int nummer = 'a';
-> nummer krijgt hier de waarde 97.
char letter = 115;
-> letter krijgt hier de waarde 's'.
char letter = 'a' + 2;
-> letter krijgt hier de waarde 'c'.
Opdracht 7.5
Wat is het resultaat als we de code 'z' + 2
uitvoeren? Probeer deze code uit maar denk eerst zelf na welke waarde je verwacht.
Opdracht 7.6
Je hebt een geheim bericht ontvangen van een vriendin.
string bericht = "Ln#ndq#surjudpphuhq#lq#F..";
Gelukkig hebben jullie van te voren afgesproken hoe jullie het bericht gingen versleutelen. Je vriendin heeft alle letters 3 posities in de unicode-tabel opgeschoven. Dus de a is een d geworden, de b een e, de c een f etc.
Schrijf een programma dat dit bericht terug vertaald naar het originele bericht.
In de string library zitten verschillende functies die handig kunnen zijn. Twee voorbeelden zijn:
find
-> met de functie find kan je zoeken of een bepaalde substring voorkomt in de string
pop_back()
-> met pop_back kan je de laatste letter verwijderen
Meer functies kan je vinden op: https://en.cppreference.com/w/cpp/string/basic_string
Opdracht 7.7 Schrijf een programma dat een zin inleest en als uitvoer geeft hoe vaak de letter e voorkomt.
Opdracht 7.8
Schrijf een programma dat een woord inleest en telt hoe vaak elke letter in het woord voorkomt. Het woord bestaat uit minstens 1, hoogstens 30 letters, geschreven in kleine letters, zonder leestekens of spaties.
Tip 1: gebruik een array: int aantal[26];
In aantal[0] houdt je bij hoe vaak de 'a' voorkomt. In aantal[1] hoe vaak de 'b' voorkomt, etc.
Tip 2: gebruik het principe: int getal = letter - 'a';
Als letter de waarde 'a' heeft dan krijgt getal de waarde 0. Als letter de waarde 'b' heeft dan krijgt getal de waarde 1, etc.
Opdracht 7.9
Schrijf een programma dat een woord inleest. Het woord bestaat uit minstens 1, hoogstens 30 letters, geschreven in kleine letters, zonder leestekens of spaties. Het programma schrijft als uitvoer een regel met daarop het aantal verschillende letters in dat woord.
Voorbeeld
Invoer: aardappelsalade
Uitvoer: 7
Met de volgende link kan je testen of je programma werkt: unieke letters inleveren.
In hoofdstuk 3 kan je terug lezen hoe het inleveren van de opgaves werkt.
Vergeet niet je naam in commentaar bovenaan je code te zetten als je de code inlevert.
// Deze code is geschreven door: <Naam>