Heim > Artikel > Backend-Entwicklung > Wie gebe ich ein Array in C-Sprache ein?
In der Sprache C gibt es zwei Funktionen, mit denen Benutzer Array-Daten über die Tastatur eingeben können: gets()
und scanf()
. scanf() gibt einen Array-String über das Formatsteuerzeichen %s ein. Zusätzlich zu Strings kann gets() auch einen Array-String direkt eingeben und nur Strings eingeben.
Es gibt jedoch einen Unterschied zwischen scanf() und gets().
scanf()
Beim Lesen einer Zeichenfolge wird diese durch Leerzeichen getrennt. Wenn ein Leerzeichen auftritt, wird die aktuelle Zeichenfolge als beendet betrachtet, sodass Zeichenfolgen, die Leerzeichen enthalten, nicht gelesen werden können.
gets()
betrachtet Leerzeichen als Teil der Zeichenfolge. Die Eingabe der Zeichenfolge gilt erst dann als beendet, wenn die Eingabetaste gedrückt wird Wird die Taste nicht gedrückt, ist gets() ein vollständiger String. Mit anderen Worten: gets() wird verwendet, um eine ganze Zeichenfolgezeile zu lesen.
Zum Beispiel:
#include <stdio.h> int main(){ char str1[30] = {0}; char str2[30] = {0}; char str3[30] = {0}; //gets() 用法 printf("Input a string: "); gets(str1); //scanf() 用法 printf("Input a string: "); scanf("%s", str2); scanf("%s", str3); //分别输出 printf("\nstr1: %s\n", str1); printf("str2: %s\n", str2); printf("str3: %s\n", str3); return 0; }
Laufergebnis:
Input a string: C C++ Java Python Input a string: PHP JavaScript str1: C C++ Java Python str2: PHP str3: JavaScript
Die erste Eingabezeichenfolge wird vollständig von gets() gelesen und in str1 gespeichert. Die erste Hälfte der zweiten Eingabezeichenfolge wird vom ersten scanf() gelesen und in str2 gespeichert, und die zweite Hälfte wird vom zweiten scanf() gelesen und in str3 gespeichert.
Beachten Sie, dass scanf() beim Lesen von Daten die Adresse der Daten benötigt. Diese ist konstant, daher müssen Sie bei Variablen vom Typ int, char, float und anderen Typen & hinzufügen, um deren Adressen zu erhalten. Aber in diesem Code haben wir nur den Namen der Zeichenfolge angegeben, aber kein & vorangestellt. Warum ist das so? Da String-Namen oder Array-Namen im Allgemeinen bei der Verwendung in Adressen umgewandelt werden, ist das Hinzufügen von & unnötig und kann sogar zu Fehlern führen.
Nach dem bisher erlernten Wissen muss int, char, float und anderen Arten von Variablen bei Verwendung in scanf() ein & vorangestellt werden, während Arrays oder Strings bei Verwendung nicht vorangestellt werden müssen in scanf() selbst wird in eine Adresse umgewandelt. Leser müssen dies im Hinterkopf behalten.
Was die Details der Konvertierung von Array-Namen (String-Namen) und Adressen betrifft und wann Array-Namen in Adressen konvertiert werden.
Das obige ist der detaillierte Inhalt vonWie gebe ich ein Array in C-Sprache ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!