C语言的Char

字符

专用打印方式

1
2
3
char a = '1';
putchar(a);
printf("%c",a);

putchar函数单次只能输出一个char,相对来说printf函数要强大的多。

字符与整数

计算机在存储字符时并不是真的要存储字符的实体,而是存储该字符在字符集中的编号。对于char类型来说,世纪存储的就是字符的ASCII码。

无论在哪个字符集中,字符编号都是一个整数;从这个角度去考虑,字符类型本质上与整数一致。

我们可以给字符类型赋值一个整数,或者以整数的形式输出字符类型。反过来,也可以给整数类型赋值一个字符,或者以字符的形式输出整数类型。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main()
{
    char a = 'E';
    char b = 70;
    int c = 71;
    int d = 'H';

    printf("a: %c, %d\n", a, a);
    printf("b: %c, %d\n", b, b);
    printf("c: %c, %d\n", c, c);
    printf("d: %c, %d\n", d, d);

    return 0;
}

输出:

a: E, 69
b: F, 70
c: G, 71
d: H, 72

中文字符

由于char使用电脑系统的默认编码,一般windows上都是ASCII,只能识别到英文字母,所以是不支持汉字单字符的。所以要存储汉字字符,需要使用宽字符wchar_t

宽字符wchar_t使用UTF-16UTF-32编码。

字符的编码

char

字符串

C语言中压根就没有字符串,只能使用数组指针来渐渐的储存字符串。

1
2
3
4
//数组方式
char str1[] = "http://c.biancheng.net"; //这里帮原作打个广告
//指针方式
char *str2 = "C语言中文网";