7. String

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:

#include <string>
#include <iostream>
using namespace std;

int main(){
  string zin = "Programmeren is leuk";
  cout << zin << endl;
  cout << "Het aantal letters in de zin is: " << zin.length();
  return 0;
}

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?

#include <string>
#include <iostream>
using namespace std;

int main(){
  string string1 = "10";
  string string2 = "10";
  cout << string1 + string2 << endl;
  int int1 = 10;
  int int2 = 10;
  cout << int1 + int2 << endl;
  return 0;
}

Char

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.

String functies

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>

Last updated