[Langage C] Résumé des connaissances sur les tableaux (2) - Entrée et sortie de chaînes

1. Stockage des chaînes


  • La chaîne stockée doit avoir la marque de fin '\0'

  • La longueur du tableau stockant la chaîne est au moins la longueur effective de la chaîne + 1


Lisez attentivement le code ci-dessous pour comprendre :

#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;
}

Résultat de sortie :
Insérer la description de l'image ici
Selon le résultat de sortie :


  • 1 3 4 6 est équivalent et correct
  • 2 5 est faux

2. Entrée et sortie de chaîne

1. Comparaison de plusieurs chaînes d'entrée et de sortie

fonction Format la différence
scanf() scanf("%s", nom du tableau de caractères) Vous ne pouvez pas saisir une chaîne avec des espaces. Vous pouvez utiliser plusieurs caractères de contrôle de format %s pour saisir plusieurs chaînes. Lorsqu'un espace est rencontré pour terminer la saisie, vous devez ajouter manuellement la marque de fin de chaîne « \0 ».
obtient() get(nom du tableau de caractères) Une seule chaîne peut être saisie. La saisie se termine lorsqu'un caractère de retour chariot est rencontré et le caractère de retour chariot '\n' est automatiquement converti en '\0'.
printf() printf("%s", nom du tableau de caractères) Une fonction printf() peut générer plusieurs chaînes sans renvoyer automatiquement les lignes après la sortie.
met() puts (nom du tableau de caractères) Une fonction puts() ne peut générer qu’une chaîne, et elle sera automatiquement renvoyée après la sortie.

2. Entrée et sortie caractère par caractère


  • Utilisez les fonctions d'entrée et de sortie standard scanf() et printf() avec le descripteur de format %c
  • Un nombre fixe de caractères doit être saisi

#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;
}

  • Utilisez les fonctions getchar() et putchar() pour saisir et sortir des chaînes
  • Entrez simplement le nombre de caractères dans la limite spécifiée et terminez lorsque vous entrez le caractère de retour chariot.

#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. Entrée globale de la chaîne


  • Utilisez la fonction d'entrée standard scanf() avec le descripteur de format %s
  • Format d'appel : scanf("%s", nom du tableau de caractères);
  • Lorsque vous utilisez le caractère de contrôle de format %s pour saisir une chaîne, la fonction scanf() ajoutera automatiquement « \0 » après la chaîne.

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

Lorsque vous devez saisir une chaîne contenant des espaces au milieu, vous devez utiliser la fonction scanf() avec plusieurs paramètres d'entrée pour correspondre à l'entrée.


#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;
}

résultat:

how are you
how are you

  • Utilisez la fonction gets() pour saisir une chaîne complète
  • Format d'appel : gets(nom du tableau de caractères) ;
  • Cette fonction permet de stocker une ligne de caractères saisie par le clavier dans un tableau de caractères sous forme de chaîne.
  • Lors de la saisie d'une ligne de caractères, la touche Entrée est utilisée comme caractère de fin et le caractère de retour chariot '\n' est automatiquement converti en '\0' comme marque de fin de la chaîne.

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

résultat:

how are you
how are you

4. Sortie de chaîne


  • Utilisez la fonction de sortie standard printf() avec le descripteur de format %s
  • Format d'appel : printf("%s", nom du tableau de caractères);

#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;
}

résultat:

How are you?
I am fine.Thank you.

  • Utilisez la fonction puts() pour générer une chaîne complète
  • Format d'appel : puts (nom du tableau de caractères) ;
  • Cette fonction peut afficher une chaîne (une séquence de caractères se terminant par '\0') à l'écran
  • S'enroulera automatiquement après la sortie

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

résultat:

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

Je suppose que tu aimes

Origine blog.csdn.net/m0_74102736/article/details/130311394
conseillé
Classement