So lesen Sie einen String in C. Die Programmiersprache C stellt keinen tatsächlichen String-Datentyp bereit. In C wird ein String durch ein Array von Zeichen emuliert, das mit NULL endet. Ein solches Array kann statisch oder als Zeiger deklariert werden. Standard C bietet viele Funktionen zum Manipulieren von Zeichenarrays oder C-Strings. Dieser Artikel konzentriert sich auf die Funktionen, die aus dem Eingabestream und aus Dateien lesen. Befolgen Sie diese Tipps, um zu lernen, wie man eine Zeichenfolge in C liest.
Schritt 1
Verstehen Sie die Grundlagen. Ein C-String ist ein Array vom Typ chart. Wie bei allen C-Arrays wird das erste Element mit 0 indiziert und das letzte mit "String-Länge minus 1". Normalerweise fügt der Compiler NULL an der letzten Stelle ein, sodass der String "Stringlänge minus 1" enthalten kann. Elemente. Null entspricht 0x00 in ganzzahliger Form und '\0' in char-Form. Auf Elemente wird mit dem Operator "[]" zugegriffen. Schritt 2 veranschaulicht diese Konzepte.
Video des Tages
Schritt 2
Fügen Sie die "include-Direktive" unten zu jeder Quelldatei hinzu, bevor Sie die Funktionen dieses Tutorials verwenden:
#include < stdio.h >
Schritt 3
Deklarieren Sie einen C-String. Der folgende Code zeigt eine Deklaration mit der statischen und der Zeigermethode:
// statische Deklaration char str[50] = {0}; // Kurzform um alle Elemente auf 0 zu initialisieren // str[49] ist NULL // str hat eine Kapazität für 48 Zeichen // Deklaration durch Zeiger char pStr = NULL; // keine Speicherzuweisung pStr = (char)malloc (50); // dies geschieht durch "malloc()"
Schritt 4
Lesen Sie Daten mit "scanf()" in einen C-String ein, der eine Reihe von Strings liest, die durch Leerzeichen vom Standard getrennt sind eingeben und in die zu den entsprechenden Referenzvariablen gehörenden Adressen nach einem "Format" Zeichenfolge":
int n; printf("Geben Sie Ihren Vornamen und Ihr Alter ein: "); scanf("%s%d", str, &n); // printf("Ihr Name ist %s und Sie sind %d alt\n", str, n);
Schritt 5
Fügen Sie Daten in einen C-String ein, indem Sie die einfachere Funktion "gets()" verwenden, die Daten nur aus der Standardeingabe in einen String liest:
printf("Geben Sie Ihren Nachnamen ein: "); bekommt (str); printf("Ihr Name ist %s\n", str);
Schritt 6
Dateidaten mit "fscanf()" in einen C-String einlesen; diese Funktion ist analog zu "scanf()":
DATEI* pDatei; pFile = fopen("myFile.txt", "r"); // gehe davon aus, dass die Datei existiert und Daten enthält if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Das erste Wort in der Datei ist %s\n", str); fclose (pDatei); }
Schritt 7
Wiederholen Sie Schritt 5 mit "fgets()", was genauso funktioniert wie "gets()":
DATEI* pDatei; pFile = fopen("myFile.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Das erste Wort in der Datei ist %s\n", str); fclose (pDatei); }
Dinge, die du brauchen wirst
C/C++ IDE oder C-Compiler
Buch über C, wie "The C Programming Language" von Brian W. Kernighan
Spitze
Um mehr über die genannten Funktionen zu erfahren, besuchen Sie die C Plus Plus-Website.
Warnung
Versuchen Sie nicht, diesen Code zu kompilieren. Es soll nur die Funktionen demonstrieren. Es ist kein kohärentes Programm und gibt beim Kompilieren Fehler aus.