← 返回首页
C语言系列教程(八)
发表时间:2021-03-19 17:42:41
字符类型

C语言的字符类型是 char,它的长度是 1,只能容纳 ASCII 码表中的字符,也就是英文字符。

1.定义字符变量

字符类型由单引号' '包围,字符串由双引号" "包围。

输出 char 类型的字符有两种方法,分别是: - 使用专门的字符输出函数 putchar; - 使用通用的格式化输出函数 printf,char 对应的格式控制符是%c。

例如:

#include <stdio.h>

int main(){

    char c1 = 'A';
    //char c2 = '中'; //错误
    //char c3 = "A"; //错误
    //char c4 = 'A';  //错误,A 是一个全角字符 
    char c5 = ' ';  // 空格也是一个字符

    putchar(c1);putchar('\n');
    printf("%c",c1);    
    return 0;
}

运行结果:

A
A

2.char类型与int类型转换

计算机在存储字符时并不是真的要存储字符实体,而是存储该字符在字符集中的编号(也可以叫编码值)。对于 char 类型来说,它实际上存储的就是字符的 ASCII 码。因此可以与int类型相互转换。

例如:

#include <stdio.h>

int main(){

    char c1 = 'A';
    int n = 65;
    char c3 = ++n;

    printf("%c\n",c1); 
    printf("%d\n",(int)c1);
    printf("%c\n",(char)n);
    printf("%c\n",c3); 

    return 0;
}

运行结果:

A
65
B
B

3.c语言能否输出中文字符

C语言本身不支持直接输出中文字符,因为中文字符通常需要使用两个或更多字节来表示,而C语言中的字符类型char通常是一个字节,无法容纳整个Unicode字符集。要在C语言中输出中文字符,你可以使用宽字符类型wchar_t(需要输出宽字符字符串,并且确保环境支持宽字符)。

实现代码如下:

#include <stdio.h>
#include <stddef.h>
#include <wchar.h>
#include <locale.h>

int main(){

   setlocale(LC_ALL, ""); 
   wchar_t c = L'中'; 
   wprintf(L"%lc\n",c);
   return 0;
}

运行结果: