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 Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties

Wat is een String in C?

Een string in C is een opeenvolgende reeks karakters beëindigd door het null-teken (\0). Hoewel de taal geen toegewijde string-type heeft, wordt een string meestal voorgesteld als een array van char-waarden. De compiler voegt de null-terminator automatisch toe wanneer je een string-literal initialiseert.

"Welkom in de wereld van programmeren!"

De standaardbibliotheek-header <string.h> biedt een schat aan functies voor efficiënte stringmanipulatie.

Strings Declareren en Initialiseren

Omdat C een string behandelt als een karakterarray, moet je de array-grootte specificeren. De grootte definieert het maximum aantal karakters (exclusief de null-terminator) dat opgeslagen kan worden.

char string_variabele_naam[array_grootte];

Typische declaraties:

char voornaam[15]; /* houdt maximaal 14 karakters + \0 */
char achternaam[15];

Wanneer je een initialisator geeft, telt de compiler de karakters en voegt automatisch de null-terminator toe. De array-grootte mag weggelaten worden als je een initialisator geeft.

char voornaam[15] = "ANTHONY";
char voornaam[] = "NATHAN"; /* grootte afgeleid */
char string3[6] = {'h','e','l','l','o','\0'}; /* expliciete terminator */

Strings Lezen van de Gebruiker

Invoervuncties variëren in veiligheid en gedrag:

  • scanf("%s", naam) leest tot witruimte, maar is kwetsbaar voor bufferoverloop.
  • gets() leest een volledige regel, maar is onveilig en verwijderd in C11.
  • fgets(naam, grootte, stdin) leest maximaal grootte-1 karakters, laat ruimte voor de null-terminator.

Voorbeeld met fgets:

#include <stdio.h>
int main() {
    char naam[50];
    printf("Voer uw volledige naam in: ");
    fgets(naam, sizeof(naam), stdin);
    printf("Uw naam is %s", naam);
    return 0;
}

Strings Printen

De klassieke manier om een string weer te geven is printf("%s", naam);. Twee handige alternatieven zijn:

  • fputs(naam, stdout) – schrijft direct naar de uitvoerstroom.
  • puts(naam) – schrijft de string gevolgd door een newline.

Voorbeeld met puts:

#include <stdio.h>
int main() {
    char groet[] = "Hallo, wereld!";
    puts(groet);
    return 0;
}

De String-bibliotheek (<string.h>)

Veelgebruikte functies:

FunctieBeschrijving
strlenGeeft de lengte van een string (exclusief null-terminator).
strcatVoegt één string toe aan een andere.
strcmpVergelijkt twee strings lexicografisch.
strcpyKopieert een string.
strncmpVergelijkt tot n karakters.
strncpyKopieert tot n karakters.
strchrVindt de eerste voorkomen van een karakter.
strrchrVindt de laatste voorkomen van een karakter.
strstrVindt een substring.
strncatConcateneert tot n karakters.
strlwrConverteert naar kleine letters (niet-standaard).
struprConverteert naar hoofdletters (niet-standaard).
strrevKeert een string om (niet-standaard).

Illustratief programma:

#include <stdio.h>
#include <string.h>
int main() {
    char str1[20] = "Hallo";
    char str2[20] = " Wereld!";
    char resultaat[40];
    /* Vergelijking */
    if (strcmp(str1, str2) == 0) puts("Strings zijn gelijk");
    else puts("Strings zijn niet gelijk");
    /* Concatenatie */
    strcat(str1, str2); // str1 bevat nu "Hallo Wereld!"
    printf("Geconcateneerd: %s\n", str1);
    /* Lengte */
    printf("Lengte van str1: %zu\n", strlen(str1));
    /* Kopiëren */
    strcpy(resultaat, str1);
    printf("Gekopieerde string: %s\n", resultaat);
    return 0;
}

Een String Converteren naar een Getal

Standaard conversies:

  • atoi – converteert naar int.
  • atof – converteert naar double.
  • atol – converteert naar long.

Voorbeeld met atoi:

#include <stdio.h>
#include <stdlib.h>
int main() {
    char getal_str[20];
    printf("Voer een getal in: ");
    fgets(getal_str, sizeof(getal_str), stdin);
    int num = atoi(getal_str);
    printf("Je hebt %d ingevoerd\n", num);
    return 0;
}

Belangrijkste Inzichten

  • Een string is een reeks karakters opgeslagen in een char-array beëindigd door \0.
  • Declareer de array-grootte vóór gebruik, of laat de compiler deze afleiden bij initialisatie.
  • Gebruik fgets voor veilige invoer; vermijd gets en scanf("%s") zonder bounds-checking.
  • Benut <string.h> voor robuuste stringoperaties.
  • Converteer string-getallen met atoi, atof of atol om runtime-fouten te voorkomen.
  • Onthoud dat string-literalen read-only zijn; ze wijzigen leidt tot ongedefinieerd gedrag.

C Taal

  1. C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
  2. C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden
  3. realloc() in C gebruiken: Syntaxis, best practices & voorbeeld
  4. Beheersing van C's free() functie: Praktische gids & voorbeeld
  5. Strings in C# Beheersen: Best Practices & Tips
  6. Dynamische string-lijsten in VHDL: Best Practices & Voorbeeld
  7. Python-stringoperaties beheersen: Replace, Join, Split, Reverse en case-conversie
  8. Java Strings beheersen: aanmaken, methodes en best practices
  9. String representaties in Java Enums meesteren
  10. Java String length() Methode: Hoe de grootte van een String op te vragen (Voorbeeld)
  11. Java Strings Class: String Creatie & Manipulatie Onder de Knie