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;
}
运行结果:
中