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
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 |
---|
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