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-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.

C-programmeren Strings: Declaratie, initialisatie en I/O onder de knie krijgen

Hoe een string declareren?

Strings worden gedeclareerd als karakter-arrays. Bijvoorbeeld:

char s[5];
C-programmeren Strings: Declaratie, initialisatie en I/O onder de knie krijgen

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'};
C-programmeren Strings: Declaratie, initialisatie en I/O onder de knie krijgen

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

  1. C# Strings: Fundamentals, Operaties & Geavanceerde Technieken
  2. Namespaces in C#: organisatie, scope en best practices
  3. Arrays doorgeven aan functies in C++: een praktische gids
  4. C Programmeeroperatoren Beheersen: Een Uitgebreide Gids
  5. C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden
  6. C Strings Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties
  7. C-programmeren leren: Uitgebreide tutorial voor beginners
  8. Python-stringoperaties beheersen: Replace, Join, Split, Reverse en case-conversie
  9. Java Strings beheersen: aanmaken, methodes en best practices
  10. String representaties in Java Enums meesteren
  11. Java Strings Class: String Creatie & Manipulatie Onder de Knie