Tijdens het programmeren houden we ons bezig met gegevens en op deze gegevens voeren we allerlei bewerkingen uit. Om ons programma overzichtelijk en beheersbaar te houden, is het van belang dat we gegevens goed structuren. Daarom moeten we gegevens die bij elkaar horen ook bij elkaar houden. Hiervoor kunnen we gebruik maken van objecten.
Een object is een verzameling van gegevens die we bewerkingen uit kunnen laten voeren en die bepaalde eigenschappen bevat. Een voorbeeld van een object zou een cd kunnen zijn. De cd heeft bepaalde eigenschappen, zoals de titel, de artiest die de cd heeft opgenomen en een lijst met liedjes. Bovendien kunnen we de cd acties laten uitvoeren, zoals afspelen, pauzeren, nummer overslaan.
In deze les kijken we niet hoe we zelf objecten kunnen maken, maar we zien wel hoe we bestaande objecten kunnen gebruiken. We hebben dus een object nodig dat met C++ is meegeleverd. Gelukkig hebben we al een keer met zo'n object gewerkt: de string.
Een string heeft bepaalde eigenschappen, zoals het aantal tekens in de string - ook wel de lengte van de string genoemd. We zeggen dat lengte een member van de string is. Members kunnen we opvragen. Het volgende programma vraagt de lengte van een string op.
#include <iostream> #include <string> using namespace std; // het programma start hier void main() { // initialiseer een string string myString = "Dit is een string van 32 tekens."; // schrijf lengte van string naar scherm cout << myString.length(); }
Een object kan ook bewerkingen of acties uitvoeren. Het aanroepen van zulke bewerkingen en acties gaat net zoals het aanroepen van functies. In het volgende voorbeeld wordt een woord uit een string verwijderd met behulp van de opdracht erase. De eerste parameter geeft aan vanaf waar we tekens willen verwijderen, de tweede parameter geeft aan hoeveel tekens we willen verwijderen.
#include <iostream> #include <string> using namespace std; // het programma start hier void main() { // initialiseer een string string myString = "Dit woord woord is te veel."; // verwijder een woord uit de string cout << myString.erase(4, 6); }
Je ziet dat de bewerking wordt aangeroepen net als een functie, met dit verschil dat we nu aangeven op welk object de functie moet worden uitgevoerd. Op een object kun je alleen die functies aanroepen die voor dat object gedefiniƫerd zijn. We spreken daarom van memberfuncties.
In onderstaande tabel zie je een overzicht van een aantal handige memberfuncties van string.
Memberfunctie | Omschrijving | Voorbeeld |
---|---|---|
append | Voegt de opgegeven tekst toe aan de string. |
string myString = "Een string vol tekens. "; myString.append("En nog iets extra's. "); // zo kan het ook myString += "En nog meer."; cout << myString; Resultaat:
|
at | Vraagt het teken op dat op de aangegeven positie staat. at() begint te tellen bij 0, niet bij 1. |
string myString = "Een string vol tekens."; cout << "Het vijfde teken is: " << myString.at(4) << endl; Resultaat:
|
erase | Verwijdert tekst uit een string. |
string myString = "Een string vol tekens."; myString.erase(4, 2); myString.erase(18, 1); cout << myString; Resultaat:
|
find | Zoekt naar de opgegeven tekst in een string en geeft terug op welke positie de tekst gevonden is. Als de tekst niet gevonden wordt, geeft find de waarde string.npos terug. |
string myString = "Een string vol tekens."; cout << myString.find("vol") << endl; // begin te zoeken vanaf teken 16 if (myString.find("vol", 15)) { cout << "Niet gevonden."; } Resultaat:
|
insert | Voegt tekst in op de opgegeven plaats in de string. |
string myString = "Een string vol tekens."; cout << myString.insert(15, "met "); Resultaat:
|
length | Vraagt het aantal tekens in een string op. |
string myString = "Een string vol tekens."; cout << myString.length(); Resultaat:
|
replace | Vervangt tekst in een string vanaf de opgegeven positie. |
string myString = "Een string vol tekens."; cout << myString.replace(11, 3, "bestaand uit"); Resultaat:
|
substr | Vraagt een gedeelte uit een string op. |
string myString = "Een string vol tekens."; cout << myString.substr(4, 6); Resultaat:
|