C-programmeren Strings: Declaratie, initialisatie en I/O onder de knie krijgen
C-programmeren Strings
Deze tutorial begeleidt je door de fundamentals van C-strings: declaratie, initialisatie, invoer/uitvoer, functiegebruik, pointers en essentiële bibliotheekfuncties.
In C is een string een array van karakters getermineerd door een null-byte \0. Bijvoorbeeld:
char c[] = "c string";
De compiler voegt \0 automatisch toe aan een string-literal, wat het een geldige C-string maakt.

Hoe een string declareren?
Strings worden gedeclareerd als karakter-arrays. Bijvoorbeeld:
char s[5];

Dit declareert een buffer die maximaal 4 karakters plus de afsluitende \0 kan bevatten.
Hoe strings initialiseren?
Verschillende initialisatiestijlen zijn beschikbaar:
char c[] = "abcd";
char c[50] = "abcd";
char c[] = {'a', 'b', 'c', 'd', '\0'};
char c[5] = {'a', 'b', 'c', 'd', '\0'};

Let op bufferoverloop: char c[5] = "abcde"; probeert zes karakters (inclusief \0) in een vijf-byte array op te slaan en moet vermeden worden.
Waarden toewijzen aan strings
Arrays kunnen niet na declaratie worden toegewezen. Gebruik in plaats daarvan strcpy():
char c[100];
strcpy(c, "C programmeren");
Let op: Directe toewijzing zoals c = "C programmeren"; veroorzaakt een compileerfout.
Strings van de gebruiker lezen
Gebruik scanf() voor spatie-gescheiden invoer:
#include <stdio.h>
int main() {
char name[20];
printf("Voer naam in: ");
scanf("%s", name);
printf("Je naam is %s.", name);
return 0;
}
Output
Voer naam in: Dennis Ritchie Je naam is Dennis.
Alleen het eerste woord wordt vastgelegd omdat scanf() stopt bij witruimte. De arraynaam vervalt naar een pointer, dus name wordt direct doorgegeven.
Hoe een volledige regel lezen?
Gebruik fgets() en puts():
#include <stdio.h>
int main() {
char name[30];
printf("Voer naam in: ");
fgets(name, sizeof(name), stdin);
printf("Naam: ");
puts(name);
return 0;
}
Output
Voer naam in: Tom Hanks Naam: Tom Hanks
fgets() leest maximaal sizeof(name)-1 karakters, inclusief spaties. Het behoudt ook de trailing newline, wat puts() print.
Let op: gets() is verouderd en verwijderd uit de C-standaard omdat het buffers kan overladen.
Strings doorgeven aan functies
Strings worden aan functies doorgegeven net als arrays. Voorbeeld:
#include <stdio.h>
void displayString(char str[]);
int main() {
char str[50];
printf("Voer string in: ");
fgets(str, sizeof(str), stdin);
displayString(str);
return 0;
}
void displayString(char str[]) {
printf("String Output: ");
puts(str);
}
Strings en pointers
String-namen vervallen naar pointers, wat pointer-arithmetic mogelijk maakt:
#include <stdio.h>
int main(void) {
char name[] = "Harry Potter";
printf("%c", *name); // H
printf("%c", *(name+1)); // a
printf("%c", *(name+7)); // o
char *namePtr = name;
printf("%c", *namePtr); // H
printf("%c", *(namePtr+1)); // a
printf("%c", *(namePtr+7)); // o
}
Veelgebruikte string-functies
- strlen() – retourneert de lengte van een string (exclusief de null-terminator).
- strcpy() – kopieert één string naar een andere.
- strcmp() – vergelijkt twee strings lexicografisch.
- strcat() – concateneert twee strings.
C Taal
- C# Strings: Fundamentals, Operaties & Geavanceerde Technieken
- Namespaces in C#: organisatie, scope en best practices
- Arrays doorgeven aan functies in C++: een praktische gids
- C Programmeeroperatoren Beheersen: Een Uitgebreide Gids
- C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden
- C Strings Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties
- C-programmeren leren: Uitgebreide tutorial voor beginners
- Python-stringoperaties beheersen: Replace, Join, Split, Reverse en case-conversie
- Java Strings beheersen: aanmaken, methodes en best practices
- String representaties in Java Enums meesteren
- Java Strings Class: String Creatie & Manipulatie Onder de Knie