Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C-Strings: Deklaration, Initialisierung & Ein-/Ausgabe meistern

C-Strings

Dieses Tutorial führt Sie durch die Grundlagen von C-Strings: Deklaration, Initialisierung, Ein-/Ausgabe, Funktionsverwendung, Zeiger und wesentliche Bibliotheksfunktionen.

In C ist ein String ein Array von Zeichen, das durch ein Null-Byte \0 terminiert wird. Zum Beispiel:

char c[] = "c string";

Der Compiler fügt \0 automatisch an einen String-Literal an, was ihn zu einem korrekten C-String macht.

C-Strings: Deklaration, Initialisierung & Ein-/Ausgabe meistern

Wie deklariert man einen String?

Strings werden als Zeichen-Arrays deklariert. Zum Beispiel:

char s[5];
C-Strings: Deklaration, Initialisierung & Ein-/Ausgabe meistern

Dies deklariert einen Puffer, der bis zu 4 Zeichen plus das abschließende \0 aufnehmen kann.


Wie initialisiert man Strings?

Mehrere Initialisierungsstile sind verfügbar:

char c[] = "abcd";
char c[50] = "abcd";
char c[] = {'a', 'b', 'c', 'd', '\0'};
char c[5] = {'a', 'b', 'c', 'd', '\0'};
C-Strings: Deklaration, Initialisierung & Ein-/Ausgabe meistern

Achten Sie auf Pufferüberläufe: char c[5] = "abcde"; versucht, sechs Zeichen (inklusive \0) in ein 5-Byte-Array zu speichern und sollte vermieden werden.


Werte Strings zuweisen

Arrays können nach der Deklaration nicht zugewiesen werden. Stattdessen verwenden Sie strcpy():

char c[100];
strcpy(c, "C programming");

Hinweis: Direkte Zuweisung wie c = "C programming"; verursacht einen Kompilierfehler.


Strings vom Benutzer einlesen

Verwenden Sie scanf() für leerzeichen-getrennte Eingabe:

#include <stdio.h>
int main() {
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

Ausgabe

Enter name: Dennis Ritchie
Your name is Dennis.

Nur das erste Wort wird erfasst, da scanf() bei Whitespace stoppt. Der Arrayname zerfällt zu einem Zeiger, daher wird name direkt übergeben.

Wie liest man eine ganze Zeile?

Verwenden Sie fgets() und puts():

#include <stdio.h>
int main() {
    char name[30];
    printf("Enter name: ");
    fgets(name, sizeof(name), stdin);
    printf("Name: ");
    puts(name);
    return 0;
}

Ausgabe

Enter name: Tom Hanks
Name: Tom Hanks

fgets() liest bis zu sizeof(name)-1 Zeichen, einschließlich Leerzeichen. Es behält auch das abschließende Newline bei, das puts() ausgibt.

Hinweis: gets() ist veraltet und wurde aus dem C-Standard entfernt, da es Pufferüberläufe verursachen kann.


Strings an Funktionen übergeben

Strings werden an Funktionen genauso wie Arrays übergeben. Beispiel:

#include <stdio.h>
void displayString(char str[]);
int main() {
    char str[50];
    printf("Enter string: ");
    fgets(str, sizeof(str), stdin);
    displayString(str);
    return 0;
}
void displayString(char str[]) {
    printf("String Output: ");
    puts(str);
}

Strings und Zeiger

String-Namen zerfallen zu Zeigern, was Zeigerarithmetik ermöglicht:

#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
}

Häufig verwendete String-Funktionen

C Sprache

  1. C# Strings meistern: Grundlagen, Operationen & fortgeschrittene Techniken
  2. Namespaces in C# meistern: Organisation, Gültigkeitsbereich und Best Practices
  3. Arrays an Funktionen in C++ übergeben: Ein praktischer Leitfaden
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. String-Repräsentationen in Java Enums meistern
  6. C++ String‑Funktionen meistern: strcpy, strcat, strlen, strcmp – Praxisbeispiele
  7. C Strings einfach gemacht: Deklaration, Ein- & Ausgabe, Bibliotheksfunktionen
  8. Python String-Operationen meistern: Replace, Join, Split, Reverse und Case Conversion
  9. C-Programmierung meistern: Umfassendes Tutorial für Einsteiger
  10. Java Strings Klasse: String-Erstellung & Manipulation meistern