Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C-strings: Hoe null-getermineerde karakterarrays werken

Wat is een C-string?

Een string in C is een eendimensionale array van char die eindigt met een null-karakter '\0'. De lengte van de string is het aantal karakters voor de null-terminator.

Declaratie en initialisatie

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

Korter (compiler voegt \0 toe):

char greeting[] = "Hello";

Geheugenweergave:

Index:  0   1   2   3   4   5
Char:   H   e   l   l   o   \0

String afdrukken

#include <stdio.h>
int main() {
    char greeting[] = "Hello";
    printf("Groet: %s\n", greeting);
    return 0;
}

Standaard string-functies (<string.h>)

FunctieDoel
strcpy(dest, src)Kopieer src naar dest
strncpy(dest, src, n)Kopieer max n karakters (veiliger)
strcat(dest, src)Voeg src toe aan dest
strncat(dest, src, n)Voeg max n karakters toe
strlen(str)Lengte (excl. \0)
strcmp(s1, s2)Vergelijk: 0=gelijk, <0 s1<s2, >0 s1>s2
strncmp(s1, s2, n)Vergelijk eerste n karakters
strchr(str, ch)Eerste voorkomen van ch
strrchr(str, ch)Laatste voorkomen van ch
strstr(haystack, needle)Eerste voorkomen van substring

Voorbeeld

#include <stdio.h>
#include <string.h>

int main() {
    char str1[12] = "Hello";
    char str2[12] = "World";
    char str3[12];
    int len;

    strcpy(str3, str1);
    printf("strcpy: %s\n", str3);  // Hello

    strcat(str1, str2);
    printf("strcat: %s\n", str1);  // HelloWorld

    len = strlen(str1);
    printf("strlen: %d\n", len);   // 10

    return 0;
}

Belangrijke aandachtspunten

  • Geen grenscontrole – strcpy, strcat kunnen buffer overflow veroorzaken. Gebruik strncpy, strncat of snprintf.
  • Const correctheid – const char *s voor read-only strings (string literals).
  • Modificeer geen string literals – char *s = "Hello"; s[0] = 'h'; → ongedefinieerd gedrag.
  • Lengte berekenen – strlen is O(n). Sla lengte op als je hem vaak nodig hebt.

String invoer

char buffer[100];
fgets(buffer, sizeof(buffer), stdin);  // leest hele regel incl. newline
// verwijder eventueel trailing newline:
buffer[strcspn(buffer, "\n")] = '\0';

gets() is verouderd en onveilig – nooit gebruiken!

C Taal

  1. C# Strings: Fundamentals, Operaties & Geavanceerde Technieken
  2. C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden
  3. C Strings Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties
  4. Dynamische string-lijsten in VHDL: Best Practices & Voorbeeld
  5. Python-stringoperaties beheersen: Replace, Join, Split, Reverse en case-conversie
  6. Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
  7. Java Strings beheersen: aanmaken, methodes en best practices
  8. String representaties in Java Enums meesteren
  9. Java String.charAt() begrijpen: Syntaxis, Retourtype, Exceptions en Praktisch Voorbeeld
  10. Java String.endsWith() beheersen: Controleren op String-suffixen met voorbeelden
  11. Java Strings Class: String Creatie & Manipulatie Onder de Knie