So arbeiten Sie mit leeren char-Arrays in C-Programmierung

So wie Sie eine leere oder nicht initialisierte, float oder int Array deklarieren können, können Sie ein leeres char-Array mit C-Programmierung erstellen. Sie müssen präzise, ​​aber sein: Die Größe des Arrays 1 größer als die maximale Länge der Zeichenfolge sein muss für das NULL-Zeichen zu berücksichtigen. Auch Sie müssen sicherstellen, dass das, was Eingang des Arrays füllt nicht die Array-Größe nicht überschreiten.

In Füllen ein Verkohlen Array, das char-Array Vorname in Zeile 5 kann 15 Zeichen halten, plus 1 für die 0 am Ende des Strings. Das 15-Zeichen-Begrenzung ist ein von der Programmiergeräte- gemacht Annahme meisten Vornamen lang weniger als 15 Zeichen sind.

FILLING A VERKOHLEN ARRAY

# include int main () {char Vorname [16] -printf ( "Was ist Ihr Name?") -fgets (Vorname, 16, stdin) -printf ( "Freut mich, Sie zu treffen,% s n", Vorname) - (0) zurückzukehren -}

Eine fgets () Funktion in Zeile 8 liest Daten für die Zeichenfolge Vorname. Die maximale Eingangsgröße ist auf 16 Zeichen gesetzt, die bereits für das Null-Zeichen-Konten, weil fgets () klug ist, dass Art und Weise. Der Text wird von stdin oder Standardeingabe gelesen.

Übung 1

: Erstellen Sie ein neues Projekt mit dem Quellcode von einer Füllung Verkohlen Array. Erstellen und ausführen, indem Sie Ihren Vornamen als Eingabe.

Versuchen Sie das Programm wieder läuft, aber füllen den Puffer: Geben Sie mehr als 15 Zeichen. Sie werden sehen, dass nur die ersten 15 Zeichen in dem Array gespeichert sind. Auch die Enter-Taste drücken wird nicht gespeichert, was es sonst der Fall wäre, wenn die Eingabe weniger als 15 Zeichen ist.

Übung 2: Ändern Sie den Quellcode aus Übung 4, so dass das Programm auch für Ihren Nachnamen fragt, dass die Daten in einem anderen Array zu speichern. Das Programm sollte man dann begrüßen sowohl von Ihrem Vor- und Nachnamen verwenden.

Ja, die Enter-Taste drücken wird als Teil Ihres Namens gespeichert, die ist, wie Eingabe durch die fgets () Funktion gelesen wird. Wenn Sie Ihren Vornamen Dan ist, sieht das Array wie folgt:

Vorname [0] == 'D'Vorname [1] ==' a'firstname [2] == 'n'firstname [3] ==' n'firstname [4] == ' 0'

Das liegt daran, Eingang in C Strom orientiert, und Geben Sie einen Teil des Eingangsstroms ist, soweit die fgets () Funktion betroffen ist. Sie können dieses Problem beheben, indem Sie 6 Übung zu gehorchen.

Übung 3: Umschreiben des Quellcodes von Übung 5, so dass die scanf () Funktion verwendet wird, in den Vor- und Nachnamen Strings zu lesen.

Natürlich ist das Problem mit der scanf () Funktion, dass es nicht, dass die Eingabe ist auf 15 Zeichen, um sicherzustellen, überprüft - das heißt, wenn Sie es direkt, dies zu tun:

Übung 4: Ändern Sie die scanf () Funktionen im Quellcode von Übung 6, so dass die Umwandlung Zeichen verwendet als% 15s geschrieben wird. Erstellen und ausführen.

Die% 15s Umwandlung Charakter erzählt die erste scanf (Funktion) nur die ersten 15 Zeichen der Eingabe zu lesen und in die char-Array platzieren (string). Jede zusätzliche Text wird dann von der zweiten scanf () Funktion zu lesen, und jeder zusätzlichen Text danach wird verworfen.

Menü