Eingabe und Ausgabe des Zeichenarrays der C-Sprache

Es gibt zwei Möglichkeiten, Zeichenarrays einzugeben und auszugeben:
(1) Zeichen für Zeichen eingeben und ausgeben. Verwenden Sie das Formatzeichen „%c“, um ein Zeichen einzugeben oder auszugeben. Zum Beispiel

int main()
{
    
    
	char c[6];   //定义一个字符串
	for (int i = 0; i < 5; i++)
	{
    
    
		scanf("%c", &c[i]);  //输入字符串
	}
	for (int i = 0; i < 5; i++)
	{
    
    
		printf("%c", c[i]); //输出字符串
	}
	return 0;
}

(2) Geben Sie die gesamte Zeichenfolge auf einmal ein oder geben Sie sie aus. Die Verwendung des Formatzeichens „%s“ bedeutet die Eingabe und Ausgabe von Zeichenfolgen. Zum Beispiel

int main()
{
    
    
    //char str[]={"China"};
	char str[6];
	scanf("%s", str);
	printf("%s", str);
	return 0;
}

Die Speicherbedingung des Arrays im Speicher lautet:
Bitte fügen Sie eine Bildbeschreibung hinzu
Wenn die Ausgabe auf „\0“ trifft, wird die Ausgabe gestoppt.
Erläuterung:
(1) Das Ausgabezeichen enthält nicht das Abschlusszeichen „\0“.
(2) Wenn das Formatzeichen „%s“ zur Ausgabe einer Zeichenfolge verwendet wird, ist das Ausgabeelement in der Funktion printf der Name des Zeichenarrays und nicht der Name des Arrayelements.
(3) Wenn die Länge des Arrays größer als die tatsächliche Länge der Zeichenfolge ist, wird sie nur ausgegeben, bis sie auf „\0“ trifft. Zum Beispiel

char c[10]={
    
    "China"}; //字符串长度为5,连'\0'一共占6个字节
printf("%s",c);

Geben Sie nur die gültigen Zeichen „China“ der Zeichenfolge aus, anstatt 10 Zeichen auszugeben. Das ist der Vorteil der Terminierung von Flags mit Strings.
(4) Wenn ein Zeichenarray mehr als ein „\0“ enthält, endet es, wenn das erste „\0“ angetroffen wird. Zum Beispiel

int main()
{
    
    
	char str[10] = {
    
    "China\0boy"};
	printf("%s", str);
	return 0;
}

Bitte fügen Sie eine Bildbeschreibung hinzu
(5) Sie können die Funktion scanf verwenden, um eine Zeichenfolge einzugeben. scanf("%s",c);
Das Eingabeelement c in der Funktion scanf ist der Name des definierten Zeichenarrays, und die Eingabezeichenfolge sollte kürzer als die Länge des definierten Zeichenarrays sein. Beispielsweise
ist es so definiert: char c[6];
Wenn Sie „China“ über die Tastatur eingeben,
fügt das System nach „China“ automatisch ein „\0“-Abschlusszeichen ein. Wenn Sie eine Scanf-Funktion zur Eingabe mehrerer Zeichenfolgen verwenden, sollten Sie diese durch Leerzeichen trennen. Zum Beispiel

char str1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);

Eingabedaten: Wie geht es Ihnen?
Geben Sie die Daten wegen der Trennung durch Leerzeichen als drei Zeichenfolgen ein. Nach der Eingabe ist der Status der Arrays str1, str2, str3 wie folgt:
Bitte fügen Sie eine Bildbeschreibung hinzu
Der Wert des nicht zugewiesenen Elements im Array wird automatisch auf „\0“ gesetzt. Wenn geändert in

char str[13];
scanf("%s",str);

Wenn Sie „Wie geht es Ihnen?“ eingeben
, wird nur das Zeichen „Wie“ vor dem Leerzeichen an str gesendet, da das System das Leerzeichen als Trennzeichen zwischen den Eingabezeichenfolgen verwendet. Behandeln Sie „How“ als Zeichenfolge und fügen Sie danach „\0“ hinzu. Der Array-Status von str ist
Bitte fügen Sie eine Bildbeschreibung hinzu
Hinweis: Wenn das Eingabeelement in der Scanf-Funktion ein Zeichen-Array-Name ist, fügen Sie nicht das Adresssymbol & hinzu, da der Array-Name in der Sprache C die Adresse des ersten Elements des Arrays darstellt (bzw der Startpunkt des Arrays) Ursprungsadresse) .
Die folgende Abbildung ist ein Beispiel: Diese Abbildung stellt ein Zeichenarray dar, wenn das Array 6 Bytes belegt. Der Array-Name c repräsentiert die Adresse 2000. Mit dieser Ausgabeanweisung
können Sie die Adresse des ersten Elements des Arrays, also die Startadresse des Arrays, abrufen. (6) Die oben erwähnte Methode zur Ausgabe der Zeichenfolge: Sie wird tatsächlich wie folgt ausgeführt: Suchen Sie die Adresse des ersten Elements des Arrays gemäß dem Namen des Zeichenarrays c und geben Sie dann die Zeichen einzeln aus, bis '\0' angetroffen wird.printf("%o",c); //八进制形式输出
Bitte fügen Sie eine Bildbeschreibung hinzu
printf("%s",c);

Ich denke du magst

Origin blog.csdn.net/NuYoaH502329/article/details/127797561
Empfohlen
Rangfolge