[C-Sprache] Zusammenfassung des Array-Wissens (2) - Eingabe und Ausgabe von Zeichenfolgen

1. Speicherung von Zeichenfolgen


  • Die gespeicherte Zeichenfolge muss die Endmarkierung „\0“ haben.

  • Die Länge des Arrays, in dem die Zeichenfolge gespeichert ist, beträgt mindestens die effektive Länge der Zeichenfolge + 1


Lesen Sie den folgenden Code sorgfältig durch, um ihn zu verstehen:

#include<stdio.h>
int main()
{
    
    
    char str1[6] = {
    
     'c', 'h', 'i', 'n', 'a' };
    printf("%c\n", str1[5]);  // 输出空字符
    printf("%d\n", str1[5] == '\0');  // 判断是否含有空字符

    char str2[5] = {
    
     'c', 'h', 'i', 'n', 'a' };
    printf("%c\n", str2[5]);  // 错误输出
    printf("%d\n", str2[5] == '\0');  // 判断是否含有空字符

    char str3[6] = {
    
     'c', 'h', 'i', 'n', 'a', '\0' };
    printf("%c\n", str3[5]);  // 输出空字符
    printf("%d\n", str3[5] == '\0');  // 判断是否含有空字符

    char str4[6] = {
    
     "china" };
    printf("%c\n", str4[5]);  // 输出空字符
    printf("%d\n", str4[5] == '\0');  // 判断是否含有空字符

    char str5[5] = {
    
     "china" };
    printf("%c\n", str5[5]);  // 错误输出
    printf("%d\n", str5[5] == '\0');  // 判断是否含有空字符

    char str6[6] = "china";
    printf("%c\n", str6[5]);  // 输出空字符
    printf("%d\n", str6[5] == '\0');  // 判断是否含有空字符

    return 0;
}

Ausgabeergebnis:
Fügen Sie hier eine Bildbeschreibung ein
Entsprechend dem Ausgabeergebnis:


  • 1 3 4 6 ist gleichwertig und richtig
  • 2 5 ist falsch

2. String-Eingabe und -Ausgabe

1. Vergleich mehrerer Eingabe- und Ausgabezeichenfolgen

Funktion Format der Unterschied
scanf() scanf("%s", Name des Zeichenarrays) Sie können keine Zeichenfolge mit Leerzeichen eingeben. Sie können mehrere Formatsteuerzeichen %s verwenden, um mehrere Zeichenfolgen einzugeben. Wenn am Ende der Eingabe ein Leerzeichen auftritt, müssen Sie die Zeichenfolgenendemarkierung „\0“ manuell hinzufügen.
bekommt() get(Name des Zeichenarrays) Es kann nur eine Zeichenfolge eingegeben werden. Die Eingabe endet, wenn ein Wagenrücklaufzeichen angetroffen wird, und das Wagenrücklaufzeichen „\n“ wird automatisch in „\0“ umgewandelt.
printf() printf("%s", Name des Zeichenarrays) Eine printf()-Funktion kann mehrere Zeichenfolgen ausgeben, ohne dass Zeilen nach der Ausgabe automatisch umbrochen werden.
puts() puts(Name des Zeichenarrays) Eine puts()-Funktion kann nur eine Zeichenfolge ausgeben und wird nach der Ausgabe automatisch umbrochen.

2. Zeichenweise Eingabe und Ausgabe


  • Verwenden Sie die Standard-Eingabe- und Ausgabefunktionen scanf() und printf() mit dem Formatdeskriptor %c
  • Es muss eine feste Anzahl von Zeichen eingegeben werden

#include<stdio.h>
int main()
{
    
    
	int i; 
	char str[11];
	printf("请输入十个字符:");
	for (i = 0; i < 10; i++)
		scanf("%c", &str[i]);
	str[i] = '\0';
	i = 0;
	while (str[i] != '\0')
	{
    
    
		printf("%c", str[i]);
		i++;
	}
	return 0;
}

  • Verwenden Sie die Funktionen getchar() und putchar(), um Zeichenfolgen einzugeben und auszugeben
  • Geben Sie einfach die Anzahl der Zeichen innerhalb der angegebenen Grenze ein und beenden Sie den Vorgang mit der Eingabe des Wagenrücklaufzeichens.

#include<stdio.h>
int main()
{
    
    
	int i=0; 
	char str[80];
	printf("请输入一串字符:");
	while ((str[i] = getchar()) != '\n')
		i++;
	str[i] = '\0';
	for (i = 0; str[i] != '\0'; i++)
		printf("%c", str[i]);
	return 0;
}

3. Gesamteingabe der Zeichenfolge


  • Verwenden Sie die Standardeingabefunktion scanf() mit dem Formatdeskriptor %s
  • Aufrufformat: scanf("%s", Name des Zeichenarrays);
  • Wenn Sie das Formatsteuerzeichen %s zur Eingabe einer Zeichenfolge verwenden, fügt die Funktion scanf() automatisch „\0“ nach der Zeichenfolge hinzu.

#include<stdio.h>
int main()
{
    
    
	char str[10];
	printf("请输入一串字符:");
	scanf("%s", str);//不用& str就是地址
	printf("%s\n", str);
	return 0;
}

Wenn Sie eine Zeichenfolge eingeben müssen, die Leerzeichen in der Mitte enthält, müssen Sie die Funktion scanf() mit mehreren Eingabeparametern verwenden, um der Eingabe zu entsprechen.


#include<stdio.h>
int main()
{
    
    
	char str1[5],str2[5], str3[5];
	scanf("%s%s%s", str1, str2, str3);
	printf("%s %s %s\n", str1, str2, str3);
	return 0;
}

Ergebnis:

how are you
how are you

  • Verwenden Sie die Funktion gets(), um eine vollständige Zeichenfolge einzugeben
  • Aufrufformat: gets(character array name);
  • Diese Funktion kann eine über die Tastatur eingegebene Zeichenzeile in Form einer Zeichenfolge in einem Zeichenarray speichern.
  • Bei der Eingabe einer Zeichenzeile wird die Eingabetaste als Endzeichen verwendet und das Wagenrücklaufzeichen „\n“ wird automatisch in „\0“ als Endmarke der Zeichenfolge umgewandelt.

#include<stdio.h>
int main()
{
    
    
	char str[50];
	gets(str);
	printf("%s\n", str);
	return 0;
}

Ergebnis:

how are you
how are you

4. String-Ausgabe


  • Verwenden Sie die Standardausgabefunktion printf() mit dem Formatdeskriptor %s
  • Aufrufformat: printf("%s", Name des Zeichenarrays);

#include<stdio.h>
int main()
{
    
    
	char str1[]="How are you?";
	char str2[] = "I am fine.Thank you.";
	printf("%s\n%s\n", str1,str2);
	return 0;
}

Ergebnis:

How are you?
I am fine.Thank you.

  • Verwenden Sie die Funktion puts(), um einen vollständigen String auszugeben
  • Aufrufformat: puts(character array name);
  • Diese Funktion kann einen String (eine Zeichenfolge, die mit „\0“ endet) auf dem Bildschirm ausgeben
  • Wird nach der Ausgabe automatisch umbrochen

#include<stdio.h>
int main()
{
    
    
	char str[]="How are you?";
	puts(str);
	printf("I am fine.Thank you.");
	return 0;
}

Ergebnis:

How are you?
I am fine.Thank you.//可看出换了行

Ich denke du magst

Origin blog.csdn.net/m0_74102736/article/details/130311394
Empfohlen
Rangfolge