c语言char11
- 格式:ppt
- 大小:234.00 KB
- 文档页数:40


C语⾔使⽤char字符实现汉字处理
系统:windows 64
编译器:gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
⽂本编辑器:notepad
控制台:Cmder
编程语⾔:C、Python
⾸先,要想打印汉字,必须考虑到编码问题。在windows下,由于系统使⽤GBK编码,⽽GCC解析时使⽤UTF-8⽽会导致以下代码运⾏
时出现乱码:
#include
int main()
{
char *str = "你好,世界!";
printf("%s\n", str);
return 0;
}
解决⽅法为:使⽤“-fexec-charset=gbk”命令
解决了编码问题,我们还需要了解⼏点:
char类型本质上是数字,占据⼀个字节(即⼋位),可以通过%d打印编码,通过%c打印字符
在C语⾔中,⼀个汉字占据两个char类型
汉字的两个char类型为负数
在打印汉字时,它的两个char必须紧跟着
根据这⼏点,我们可以打印出汉字以及它们的编码:
#include
#include
int main()
{
// str为字符指针,指向⼀个字符字⾯量,这个字符字⾯量由'\0'结尾
char *str = "你好,世界!Hello, world!";
// chr为字符指针,指向str所指向的字符字⾯量的第⼀个字符的地址,即'你'字符的两个char中的第⼀个
char *chr = str;
printf("%zu %s\n", strlen(str), str);
// 如果遇到'\0',说明字符串结束了
while (*chr != '\0')
{
// 如果chr的编码为负数,则说明遇到了⼀个汉字
if (*chr < 0)
{
// 打印汉字及汉字的编码
// 注意两个char必须紧紧跟着打印(%c%c),否则会打印出 ??
printf("%c%c: %d%d\n", *chr, *(chr+1), *(chr), *(chr+1));
c语⾔基本数据类型short、int、long、char、float、double⼤⼩
及命名规则
C 语⾔包含的数据类型:
⼀、数据类型与“模⼦”short、int、long、char、float、double 这六个关键字代表C 语⾔⾥的六种基本数据类型。
怎么去理解它们呢? 举个例⼦:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆⾥这么⼀
咔,⼀个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球⼤⼩不⼀样,孔数也不⼀样。这个藕煤器其实就是个模⼦。
现在我们联想⼀下,short、int、long、char、float、double 这六个东东是不是很像不同类型的藕煤器啊?拿着它们在内存上咔咔咔,不同
⼤⼩的内存就分配好了,当然别忘了给它们取个好听的名字。
在32 位的系统上short 咔出来的内存⼤⼩是2 个byte;int 咔出来的内存⼤⼩是4 个byte;
long 咔出来的内存⼤⼩是4 个byte;
float 咔出来的内存⼤⼩是4 个byte;
double 咔出来的内存⼤⼩是8 个byte;
char 咔出来的内存⼤⼩是1 个byte。
(注意这⾥指⼀般情况,可能不同的平台还会有所不同,具体平台可以⽤sizeof 关键字测试⼀下)
很简单吧?咔咔咔很爽吧?是很简单,也确实很爽,但问题就是你咔出来这么多内存块,你总不能给他取名字叫做x1,x2,x3,x4,x5…或者长
江1 号,长江2 号…吧。它们长得这么像(不是你家的⽼⼤,⽼⼆,⽼三…),过⼀阵⼦你就会忘了到底哪个名字和哪个内存块匹配了(到底谁
嫁给谁了啊?^_^)。所以呢,给他们取⼀个好的名字绝对重要。下⾯我们就来研究研究取什么样的名字好。
⼆、变量的命名规则1、命名应当直观且可以拼读,可望⽂知意,便于记忆和阅读。
标识符最好采⽤英⽂单词或其组合,不允许使⽤拼⾳。程序中的英⽂单词⼀般不要太复杂,⽤词应当准确。
C语言基本类型:字符型(char)用法介绍
1.字符型(char)简介
字符型(char)用于储存字符(character),如英文字母或标点。严格来说,char 其实也是整数类型(integer type),因为 char 类型储存的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。美国普遍使用的编码是 ASCII(American
Standard Code for Information Interchange 美国信息交换标准编码)。例如:ASCII 使用 65 来代表大写字母 A,因此存储字母 A 实际上存储的是整数65。注意:许多IBM大型机使用另一种编码——EBCDIC(Extended Binary-Coded Decimal Interchange Code 扩充的二进制编码的十进制交换码);不同国家的计算机使用的编码可能完全不同。
ASCII 的范围是 0 到 127,故而 7 位(bit)就足以表示全部 ASCII。char 一般占用 8 位内存单元,表示ASCII绰绰有余。许多系统都提供扩展ASCII(Extended ASCII),并且所需空间仍然在 8 位以内。注意,不同的系统提供的扩展 ASCII 的编码方式可能有所不同!
许多字符集超出了 8 位所能表示的范围(例如汉字字符集),使用这种字符集作为基本字符集的系统中,char 可能是 16 位的,甚至可能是 32 位的。总之,C 保证 char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为 char 的位数,所以一个字节可能是 16 位,也可能是 32 位,而不仅仅限于 8 位。
2. 声明字符型变量
字符型变量的声明方式和其它类型变量的声明方式一样:
char good;
c语言char变量的定义
在C语言中,char变量用于存储单个字符,它是一种基本的数据类型。要定义一个char变量,你可以使用以下语法:
c.
char myChar;
在这个例子中,"myChar"是变量的名称,它可以根据你的需要进行命名。你还可以在定义char变量的同时进行初始化,例如:
c.
char myChar = 'A';
在这个例子中,变量"myChar"被初始化为字符'A'。需要注意的是,char类型的变量只能存储一个字符,可以是字母、数字或者特殊字符。
此外,char类型在C语言中通常占用1个字节的内存空间,范围通常是-128到127或者0到255,具体取决于编译器和操作系统的实现。在处理ASCII字符时,char变量非常有用,因为它可以存储ASCII码对应的字符值。
总的来说,char变量的定义在C语言中非常简单,只需使用关键字"char"加上变量名即可,你还可以选择是否初始化这个变量。希望这个回答能够帮助你理解C语言中char变量的定义。