如何在c 中输出gbk字

Python010

如何在c 中输出gbk字,第1张

一般情况下,应用程序采用的字符集为gbk, gb2312,该字符集中一个汉字由两个字节组成,所以在普通的C语言中,汉字是按字符串进行存储和输出的。(另:还有utf8字符集,一个汉字由三个字节组成,详情可查阅utf8字符集)

char * p = "张三"

输出多个中文:

printf("%s\n", p )//按字符串输出完整的数据

输出一个中文:printf("%c%c", *p, *p+1 )//按字符输出,同时输出两个字节

输出一个中文串的长度:

printf("sizeof(p)=%d\n",  sizeof(p) )//p变量是指针,所以,这里输出的是指针的宽度,一般32位机是4

printf("sizeof(张)=%d\n",  sizeof("张") ) // "张"是个常量字符串,sizeof是得到其占内存的大小,字符串都有一个结束符,一个”张“字占两字节,加上字符串结束\0,所以,占三个字节的内存空间

printf("length of (张)= %d\n", strlen("张") )//strlen得到的是字符串有效字符长度(字节数),不包括结束符,所以,长度是两个字节

c++怎么根据gbk码转换成汉字

main(){

int a,b=322

float x,y=8.88

char c1='k',c2

a=y

x=b

a=c1

c2=b

printf("%d,%f,%d,%c",a,x,a,c2)

}

本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8.88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。

3.复合的赋值运算符

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。

构成复合赋值表达式的一般形式为:

变量 双目运算符=表达式

它等效于

变量=变量 运算符 表达式

例如:

a+=5 等价于a=a+5

x*=y+7等价于x=x*(y+7)

r%=p 等价于r=r%p

复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。

3.10逗号运算符和逗号表达式

在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。

其一般形式为: