c语言汉字的存放和输出,怎么在C语言里用printf输出一个中文

本文介绍在C语言中如何处理gbk、gb2312及utf8等字符集中的中文字符,包括字符串存储方式、输出方法及长度计算等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般情况下,应用程序采用的字符集为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得到的是字符串有效字符长度(字节数),不包括结束符,所以,长度是两个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值