C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden
Wat is een String?
Een string is simpelweg een reeks karakters. In modern C++ werken we meestal met objecten van de std::string-klasse, die geheugentoewijzing, resizen en een reeks nuttige member‑functies automatisch afhandelt. Dit elimineert de noodzaak voor handmatig buffermanagement en vermindert het risico op buffer‑overruns.
Voor educatieve doeleinden ondersteunt C++ nog steeds de traditionele C‑stijl null‑getermineerde karakter‑arrays. Beide benaderingen hebben hun plaats: gebruik std::string voor alledaagse programmering, en reserveer C‑stijl strings voor legacy API's of prestatie‑kritieke low‑level code.
Strings Declareren
- C‑stijl karakterstring: een eendimensionale array van
chargetermineerd door een null‑karakter (\0). - std::string: een klasse uit de C++ Standard Library die een rijke interface biedt voor string‑manipulatie.
C‑Stijl Karakterstring
Voorbeeld:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
of knapper:
char name[] = "John"; // compiler voegt de terminierende '\0' toe
std::string
Om std::string te gebruiken, include de header en declareer een variabele:
#include <string> std::string name = "John";
String‑Waarden Benaderen
Hieronder is een simpel console‑programma dat een C‑stijl string en een std::string-waarde print.
#include <iostream>
#include <string>
using namespace std;
int main() {
char cName[5] = "John"; // C‑stijl string
cppName = "Guru99"; // std::string
cout << "C‑stijl string: " << cName << endl;
cout << "std::string: " << cppName << endl;
return 0;
}
Output:

Belangrijke C String‑Functies
Deze functies zijn gedefinieerd in de cstring-header. Ze werken op C‑stijl strings (null‑getermineerde arrays van char).
strcpy()
Kopieert de bronstring in de doelbuffer. De bestemming moet groot genoeg zijn om de bron te bevatten.
strcpy(dest, src); // dest moet voldoende ruimte hebben
strcat()
Voegt de bronstring toe aan het einde van de doelstring. Ook hier moet de doelbuffer groot genoeg zijn voor het resultaat.
strcat(dest, src); // dest moet voldoende ruimte hebben
strlen()
Retourneert het aantal karakters in de string, exclusief de terminierende null‑byte.
size_t len = strlen(str);
strcmp()
Vergelijkt twee strings lexicografisch. Retourneert 0 als ze gelijk zijn, een negatieve waarde als de eerste string kleiner is, en een positieve waarde als de eerste string groter is.
int cmp = strcmp(str1, str2);
Praktisch Voorbeeld
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char name1[10] = "Guru99";
char name2[10] = "John";
char name3[20]; // Zorg dat het de geconcateneerde uitkomst kan bevatten
// Kopiëren
strcpy(name3, name1);
cout << "strcpy(name3, name1): " << name3 << endl;
// Concateneren
strcat(name1, name2);
cout << "strcat(name1, name2): " << name1 << endl;
// Lengte
size_t len = strlen(name1);
cout << "strlen(name1): " << len << endl;
// Vergelijking
int cmp = strcmp(name1, name3);
cout << "strcmp(name1, name3): " << cmp << endl;
return 0;
}
Output:

Conclusie
- Gebruik
std::stringvoor de meeste C++‑code – het is veiliger en eenvoudiger. - Wanneer je met raw karakter‑arrays moet werken, zijn de
cstring-functies essentieel. - Zorg altijd dat doelbuffers groot genoeg zijn om overflows te voorkomen.
- Gebruik
strlenalleen als je de lengte nodig hebt;std::string::size()is te verkiezen voorstd::string-objecten. - Verkies
strcmpvoor legacy API's;std::string::compare()of de overbelasteoperator==geven duidelijke semantiek in modern C++.
C Taal
- C++ Variabelen en Datatypes: Expert‑handleiding voor int, double, char, string, bool
- C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
- C++ do‑while Lus: Syntaxis, Praktische Voorbeelden en Geneste Lussen
- C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
- C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
- C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
- C++ Functies Uitgelegd met Praktische Codevoorbeelden
- C Strings Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties
- Java Strings beheersen: aanmaken, methodes en best practices
- String representaties in Java Enums meesteren
- Java String.indexOf() beheersen: Substrings lokaliseren & praktische voorbeelden