Section 19 Données de caractère et type de caractère

1. Constante de
caractère Un caractère entre guillemets simples, comme «a», «#», «%», «D»

#include <stdio.h>
int main()
{
    
    
	char c1, c2;
	c1 = 'a';
	c2 = 'b';
	printf("%c %c", c1, c2);
}

2. Caractères utilisés comme nombres

#include <stdio.h>
int main()
{
    
    
	char c1, c2;
	int i = 100;
	c1 = 'a';
	i = i - c1;
	printf("c1:%c\n", c1);
	printf("c1:%d,i:%d\n", c1, i);
	c2 = c1 + 4;
	printf("c2:%c\n", c2);
}
运行结果:
c1:a
c1:97,i:3
c2:e

3. Tableau de comparaison des codes ASCII
Insérez la description de l'image ici

Types de octet gamme
[signé] car 1 -128 ~ 127
caractère non signé 1 0 ~ 255

4. Entrée et sortie de données de caractères

①scanf () / sanf_s () 和 printf ()

#include <stdio.h>
int main()
{
    
    
	int x, y, z;
	char ch;
	scanf_s("%d%c%d", &x,&ch,2, &y); 
	z = x + y;
	printf("%d%c%d=%d\n", y, ch, x, z);
}
运行结果:
1+2
2+1=3

Lorsque la fonction scanf_s entre un type de caractère, écrivez le paramètre de longueur

②getchar () et putchar ()

#include <stdio.h>
int main()
{
    
    
	char c;
	c = getchar();   //输入大写字母
	putchar(c + 32); //显示小写字母
	putchar('\n');
}
运行结果:
A
a

5. Récupérez les données d'entrée dans la mémoire tampon

#include <stdio.h>
int main()
{
    
    
	char c1, c2;
	c1 = getchar();
	c2 = getchar();
	printf("%c %c\n", c1, c2);
	printf("%d %d\n", c1, c2);
	return 0;
}
输入不同,显示不同结果:
输入abc<回车>
abc
a b
97 98
输入a<回车>
a
a

97 10

Le caractère non affiché c est stocké dans la mémoire tampon

6. Séquence de caractères commençant par la constante de caractère d'échappement \ ----

Par exemple: '\ n' est un caractère, qui représente le caractère "nouvelle ligne".
De nombreux "caractères de contrôle" ne peuvent pas être représentés par des caractères ordinaires dans le programme et des caractères d'échappement doivent être utilisés.

Tous les caractères d'échappement et leurs significations correspondantes

Caractère d'échappement importance Valeur du code ASCII (décimal)
\une Cloche (BEL) 7
\ b Retour arrière (BS), déplace la position actuelle vers la colonne précédente 8
\F Saut de page (FF), j déplacer la position actuelle au début de la page suivante 12
\ n Saut de ligne (LF), déplace la position actuelle au début de la ligne suivante dix
\ r Retour chariot (CR), déplacer la position actuelle au début de cette ligne 13
\ t Tabulation horizontale (HT), passer à la position TAB suivante 9
\ v Tabulation verticale (VT) 11
\ Représente une barre oblique inverse «» 92
' Représente un caractère guillemet simple 39
" Représente un caractère guillemet double 34
\ 0 Caractère nul (NULL) 0
\ ddd Tout caractère représenté par 1 à 3 nombres octaux Octal à trois chiffres
\ xhh Tout caractère représenté par 1 à 2 nombres hexadécimaux Hexadécimal à deux chiffres

Sept. Exemples d'utilisation de caractères d'échappement

#include <stdio.h>
int main()
{
    
    
	printf("%.4f%.4f%.4f\n", 1.01, 2.2334, 3.4);
	printf("%.4f\t%.4f\t%.4f\n", 1.01, 2.2334, 3.4);
}
运行结果:
1.01002.23343.4000
1.0100  2.2334  3.4000
#include <stdio.h>
int main()
{
    
    
	printf("This\nis\na\n\t\ttest\n\nShe said, \"How are you?\"\n");
}
运行结果:
This
is
a
                test

She said, "How are you?"
#include <stdio.h>
int main()
{
    
    
	printf("笑脸:\001\n");
	printf("红黑桃:\003\t\006\n");
	printf("听个响:\a\n"); \\ \007 \7效果相同
	printf("换几行:a\012 b\n c\x0A d\n"); 
	printf("看字母:AB\n");
	printf("再看字母:\101\102\n");
	printf("再看字母:\101\b\102\n");
	printf("还看字母:\101\r\102\n");
}
运行结果:
笑脸:    /缺少字体显示方框
红黑桃:             /缺少字体显示方框
听个响:    /been响铃一声
换几行:a
 b
 c
 d
看字母:AB
再看字母:AB
再看字母:B
B看字母:A

8. La différence entre le codage ASCII et le codage de caractères chinois

Codage ASCII: ①La norme n'a besoin que de 7 bits ② Occupent en fait 1 octet ③ Le bit le plus élevé est 0

Codage "caractère chinois": ①2 caractères pour chaque caractère chinois ② Pour une utilisation mixte avec occidental, le bit le plus élevé de chaque octet est 1

IX. Constantes de chaîne et stockage
1. La partie entre guillemets est la constante de chaîne,
telle que: "abc", "hello", "a + b", "He Lijian"
2. La constante de chaîne "abc" est dans la mémoire occupe 4 octets au lieu de 3 octets

une b c \ 0

3. Le système de compilation ajoutera automatiquement un '\ 0' comme marque de fin de la chaîne
4. '\ 0' ne fait pas partie de la chaîne, il est uniquement utilisé comme marque de fin de la chaîne. Par exemple, printf ("abc"); affiche 3 caractères abc, n'inclut pas '\ 0';
5. "Ding Jin" occupe 5 octets
6. La chaîne vide "" occupe 1 octet
7. Discrimination:
① La différence entre "a" et ' a '
char c;
c =' a '; // correct
c = "a"; //
faux'a', "a"; //
correct'aa ', "aa"; // mauvaise
②chaîne constante "abc \ n "contient 4 caractères, 5 octets

une b c \ n \ 0

③Analysez les méthodes de stockage de "abc \\ n" et "abc \\\ n"

une b c \ n \ 0
une b c \ \ n \ 0

Cliquez sur auto-test

Projet d'entraînement
1. Saisissez une lettre minuscule et indiquez la lettre majuscule et le code ASCII correspondants.

#include <stdio.h>
int main()
{
    
    
	char ch;
	printf("输入一个小写字母: ");
	scanf_s("%c", &ch,1);
	ch = ch - 32;
	printf("与对应的大写字母: %c\n",ch);
	printf("大写字母 ASCII码: %d\n", ch);
}
运行结果:
输入一个小写字母: a
与对应的大写字母: A
大写字母 ASCII码: 65

2. Utilisez \ t pour aligner les éléments de sortie

#include <stdio.h>
int main()
{
    
    
    printf("Name\tAge\tSalary\taddr\n");
    printf("Tom\t%d\t%6.1f\t%s\n", 20, 314.2, "NewYork");
    printf("Jerry\t%d\t%6.1f\t%s\n", 22, 7876.4, "BingJing");
    printf("Blotu\t%d\t%6.1f\t%s\n", 9, 5.5, "ShangHai");
    return 0;
}
运行结果:
Name    Age     Salary  addr
Tom     20       314.2  NewYork
Jerry   22      7876.4  BingJing
Blotu   9          5.5  ShangHai

Je suppose que tu aimes

Origine blog.csdn.net/m0_51439429/article/details/114712304
conseillé
Classement