当前位置:首页 » 编程语言 » c语言文字编码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言文字编码

发布时间: 2022-05-19 21:20:07

c语言中西文最常用的编码是什么

C语言中,西文最常用的编码是ASCII码。

㈡ c语言中文编码的问题

输入可以采用GB2312或者GBK编码,如果繁体,就用UTF-8
读入汉字,从文件或者标准输入读,每次读一个字节,依次存入数组
如果可以确定是全部汉字,那么可以一次读入两个字节
结束符可以用\0,但是由于双字节汉字编码低位可能是0 所以结束符要用双\0
针对英文字符和汉字混合的情况,可以这样判断
每次读入一个字符,如果该字符大于0x80 则这是一个汉字的高位,继续读入并存储
如果该字符小于0x80 则这是一个英文字符,直接存储

do
read one byte
check
if > 0x80 read next
save
while(!end)
大致这样
直到读入约定的end标志,可以是\n 可以是eof

㈢ C语言中字符编码到底有啥用

你这个问题挺有意思的。
看得出来你学东西有点思考哈。
说说我的理解
电脑里面保存的所有东西,其实都是1和0而已
所谓的字符型变量char,本质上和int变量只有长度的区别,也是保存1和0的,并没有什么特别之处。一个char变量,就是占用一个字节的空间。一个int变量,占用2个字节的空间

那这时候有个麻烦,我要输出一个字母怎么办?
比如输出a
电脑里只有1和0啊,如果要表示大点的数字还好办,只要多几位1和0,总可以表示
但是字母呢,符号呢?1 和0如何表示这些东西?
我写程序时怎么告诉电脑,我要在屏幕上显示的是“a”呢?

所以电脑最初的设计者们,就要为字母、数字、常用符号等等设计一套编码。
让程序员可以用这些编码来表示对应的字符。
这个编码最好是全球统一的,要不同一个编码,在你的电脑显示a,在我的电脑显示b,
那程序还怎么用?
所以,ASCII应运而生

“使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。”

有了这么一套约定俗成的东西,我只要输入对应的ACSII码,所有的电脑都会帮你输出对应的符号了。明白了吗?

其实汉字也一样,汉字也有其内码,才能够通过输入法来输入汉字。

㈣ C语言读写文件的时候怎么控制字符编码方式

  1. C语言读写文件有两种方式: 一种是文本方式,另一种是2进制方式。日文,中文,unicode, 都要用2进制方式。文件内容的编码和编码的转化,同一种编码的大端或小端编码,都要自己安排处理。

  2. C语言不管读写都要通过fopen函数来,其中mode参数可以控制以二进制打开还是以文本方式打开。
    fopen的函数原型:FILE * fopen(const char * path,const char * mode);
    fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
    r 以只读方式打开文件,该文件必须存在。
    r+ 以可读写方式打开文件,该文件必须存在。
    rb+ 读写打开一个二进制文件,允许读数据。
    rw+ 读写打开一个文本文件,允许读和写。
    w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
    w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
    a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
    a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
    wb 只写打开或新建一个二进制文件;只允许写数据。
    wb+ 读写打开或建立一个二进制文件,允许读和写。
    wt+ 读写打开或着建立一个文本文件;允许读写。
    at+ 读写打开一个文本文件,允许读或在文本末追加数据。
    ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
    上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

㈤ C语言汉字机内码特点是什么汉字输入输出的原理

1、汉字编码方式很多,有国标码(GB2312_1980),大五码,GBK,简体18030,区位码,电报码,还有它们的变形:unicode 大端小端码,UTF-8,UTF-*,HZ 等等。
内码特点 :二进制双字节,每字节用到8bits.
输入原理,把连续输入的ASCII字符串,通过中文输入软件转化为双字节 中文内码。
输出原理,从 双字节中文内码 查出 字体(font)和 “刻痕",放大/缩小,在频幕或纸上显示打印出来。

2、在C语言中,可以通过将汉字作为字符串输入。
由于一个汉字占2个字节,所以对汉字的操作,只能以2个字节作为操作单位。
下面通过具体实例来说明汉字在C语言中的使用:
char s[] = "首都北京"; // 将汉字字符赋值给字符数组
char s2[20]; // 定义字符数组,存放用户输入的汉字
scanf("%s", s2); // 接收用户输入的汉字字符
printf("%d\n", sizeof(s)); // 计算字符数组s所占的内存单元,输出9(最后一个字节是结束字符'\0')
printf("%s\n", &s[2]); // 输出“都北京”(首字占2个字节)
printf("%s\n", s2); // 输出用户输入的汉字

㈥ 在C语言中如何指定字符串编码方式

计算机用两个字节来表示一个汉字,“我”在内存里就是这样存放的:CE D2。CE是str[0]的内容,D2是str[1]的内容。第一次循环输出str[0],但是这个字符在ASCII字符集里代表这样一个东西Î(不知道在这儿能不能正常显示……),但是Windows的命令提示符程序读取到这里就会自动使用宽字符集,也就是说,它已经准备好读取下一个字符,然后把他们当成一个字符显示出来。于是就出现了那个汉字。 #include <stdio.h> int main() { printf("%c%c",(char)0xce,(char)0xd2); }

㈦ c语言汉字"下冰雹啦"编码是什么

一般情况下,c/c++支持的是ascii,不过汉字编码中,gb2312与ascii是兼容的,所以可以在c中获得汉字的gb2312编码,汉字是2个字节的,有高8位和低8位
采用16进制表示,“下”是cfc2,“冰”是b1f9,“雹”是b1a2,“啦”是c0b2

㈧ 在C语言中怎样获得汉字编码

C语言中,我们用整数输出字符得到的就是该字符的ASII码,如用整数输出a,得到97
但是,汉字用的是两个字节存储,我们需要分别输出者两个字节,就相当于输出该汉子的编码。
C语言支持ASCII,而GB2312与ASCII是兼容的,所以可以在C语言中获得汉字的GB2312编码
GB2312是两个字节的,第一字节是高八位,第二字节是低八位,比如下面的程序:

#include<stdio.h>
#include<string.h>
intmain(){
chara[5];
strcpy(a,"啊");
printf("%XH%XH ",(unsignedchar)a[0],(unsignedchar)a[1]);
return0;
}

a[0]是“啊”字的高八位,a[1]是低八位,程序运行结果是a[0]=B0 a[1]=A1,用16进制表示的,所以“啊”字的GB2312编码是B0A1了。输出时要强制转换成unsigned char,不然就变成负数了,因为编码是以8位的无符号整数为单位的。
也可以转成10进制,例如:
int b=(unsigned char)a[0]*256+(unsigned char)a[1];
b即为汉字的10进制GB2312编码了

㈨ c语言字符编码

'\101'是转义字符
'\ddd'其中每个"d"代表一个八进制数
即'\101'就是八进制数0101(以0开头的数为八进制数)
0101转为十进制为:65(ASCII)
ASCII为65的字符为:A
所以C1='\101',和C1=65是一样的

㈩ c语言中,汉字使用什么编码方式

DOS下是GB2312
(包含6763个汉字)
Windows下(主要是指Visual
Studio)是ANSI,这是Windows默认的编码方式
(这其实就是用“记事本”保存文件时默认的编码,据说记事本用这个编码的时候跟
"联通"两个字有过节)
Linux不太清楚,现在据说都是UTF的,以前不是