# 5. String

### String

In het eerste hoofdstuk 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. \
\
Een voorbeeld:

```cpp
#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 rij met letters of karakters:

<figure><img src="/files/drP844RXl0HSkE8AGEe3" alt=""><figcaption></figcaption></figure>

De string start bij index 0. Je kan een specifieke letter in een string opvragen met de vierkante haken \[ ].&#x20;

De eerste letter uit de zin kan je selecteren met:\
`cout << zin[0];`

De tweede letter kan je selecteren met:\
`cout << zin[1]`

Een manier om letter voor letter de string te doorlopen is:

```cpp
string zin = "Voorbeeld";
for (int i = 0; i < zin.length(); i++) {
    cout << zin[i] << endl;
}
```

**Opdracht 5.1**\
Schrijf een programma dat een zin inleest en als uitvoer de zin achterstevoren afdrukt.\
Bijvoorbeeld:\
Invoer: aardbei\
Uitvoer: iebdraa

Een andere manier om letter voor letter de string te doorlopen is:

```cpp
string zin = "Voorbeeld";
for (char element : zin){
     cout << element << endl;
}
```

**Opdracht 5.2**\
Maak de opdracht [Moeren en Bouten](https://informatica.cuttle.org/?action=question_standalone\&que_id=201\&t=14b88acbaa336358).

Met de operator + kan je 2 of meerdere strings samenvoegen. Bijvoorbeeld:\
`voornaam = "Noor";`\
`achternaam = "Vis";`\
`volledigenaam = voornaam + " " + achternaam`

**Opdracht 5.3**\
Probeer onderstaande code uit. Kun je het verschil verklaren?

```cpp
#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;
}
```

{% hint style="info" %}
Het commando `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,`` `*`variabele_naam`*`);`
{% endhint %}

### 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, hieronder de decimale waardes van ons alfabet:

![](/files/TUaQuBJAqt0tMDZzxFiT)

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 5.4**\
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.&#x20;

**Opdracht 5.5**\
Maak de opdracht [unieke letters inleveren](https://informatica.cuttle.org/?action=question_standalone\&que_id=40\&t=52d391ad7885cf27).

**Opdracht 5.6**\
Maak de opdracht [Naaimachine](https://informatica.cuttle.org/?action=question_standalone\&que_id=202\&t=f96b8f7a1c751886).<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://girls.gitbook.io/c++-cursus/leer-de-basis-van-programmeren/5.-string.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
