很多学习者做一开始学习c语言的时候都会有想过处理中文的想法,但找不到方法而放弃,但其实方法十分简单。我们下面进入正题吧。

所有学习C语言的学习者都知道ASCII码,甚至很多初学者都认为C语言所用的就只是ASCII码,只可以使用英文字符。

而ASCII码是用一个字节的长度来表示那些字符,我们常用的char也是一个字节,而我们汉字字数太多不可能用一个字节就全部包含进去。

为了解决这个问题,C语言推出了一种新的类型,叫做wchar_t。w 是 wide 的首字母,t 是 type 的首字符,wchar_t 的意思就是宽字符类型。wchar_t 的长度由编译器决定:

在微软编译器下,它的长度是 2,等价于 unsigned short;

在GCC、LLVM/Clang 下,它的长度是 4,等价于 unsigned int。

wchar_t 类型位于 头文件中,它使得代码在具有良好移植性的同时,也节省了不少内存。

下面用例子来告诉你们如何使用

#include

#include

int main(){

wchar_t a = L'A'; //英文字符(基本拉丁字符)

wchar_t b = L'9'; //英文数字(阿拉伯数字)

wchar_t c = L'中'; //中文汉字

wchar_t d = L'国'; //中文汉字

wchar_t e = L'。'; //中文标点

wchar_t f = L'ヅ'; //日文片假名

wchar_t g = L'♥'; //特殊符号

wchar_t h = L'༄'; //藏文

//将本地环境设置为简体中文

setlocale(LC_ALL, "zh_CN");

//使用专门的 putwchar 输出宽字符

putwchar(a); putwchar(b); putwchar(c); putwchar(d);

putwchar(e); putwchar(f); putwchar(g); putwchar(h);

putwchar(L'\n'); //只能使用宽字符

//使用通用的 wprintf 输出宽字符

wprintf(

L"Wide chars: %lc %lc %lc %lc %lc %lc %lc %lc\n", //必须使用宽字符串

a, b, c, d, e, f, g, h

);

return 0;

}

这里对于新人来说可能比较难懂,所以试着了解一下就好。下面有更加方便的玩法,可以了解一下。使用字符串或者数组来进行存储和处理,

char str1[] = "神奇墨离";

char *str2 = "神奇毛毛";

想不到吧,现在是不是又有些有趣的想法?那么快去自己实践吧,敲代码去吧。再那之前先,收录,收藏,转发,评论,关注。

c语言怎么储存字母,c语言怎么用变量存储中文字符?书本上面没有的秘密相关推荐

  1. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)

    C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...

  2. c语言程序设计移动字母,c语言程序设计word版.pdf

    c语言程序设计word版 程序设计语言一般分为机器语言.汇编语言和高级语言三大类. 1.机器语言 对于计算机来说,一组机器指令就是程序,称为机器语言程序. 2.汇编语言 为了便于理解与记忆,人们采用能 ...

  3. c语言输出后续字母,c语言题。 按顺序打印输出26个英文字母,

    #includeint main(){int i;for(i=0;i<26;i++)printf("%c ",i+'A'):for(i=0;i<26;i++)print ...

  4. c语言赋值一个字母,c语言赋值后面有逗号 c语言赋值与逗号表达式问题

    C语言提供一种特殊放入运算符:逗号运算符 表达式1,表达式2 逗号表达式的分享解过程是: 先分享表达式1,再分享表达式2 整个逗号表达式的值是表达式2的值,如表达式"3+5,6+8" ...

  5. c语言如何赋值字母,C语言赋值指代简介

    如果你刚刚步入计算机编码的世界,可能会发现这里是一个繁复而又绮丽的殿堂.无数的0和1在这里组成二进制的数字,无数的英文字母在这里组成程序的代码,就像那些科幻片中描绘的那样,科技感和未来感十足.虽然此时 ...

  6. c语言程序设计移动字母,C语言程序设计模拟试题二(含答案)

    C语言程序设计模拟试题二(含答案) 1.下列电子邮件地址中正确的是(其中□表示空格) A) Malin&http://www.doczj.com/doc/2969157fa26925c52cc ...

  7. c语言实验交换字母,C语言实验内容.doc

    C语言上机实验 2.1 熟悉C语言程序开发环境 2.1.3 实验内容 1. 编程题1 编写程序实现在屏幕上显示以下文字. The dress is long. The shoes are big. T ...

  8. c语言两个字母如何比较,c如何比较两个字符 C语言中怎么判断两个字符相同

    可以使用库函数strcmp判断,具体如下: strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b); 该函数会对a和b的每个字符,按照ascii码值比较 ...

  9. c语言背包问题装字母,C语言动态规划之背包问题详解

    01背包问题 给定n种物品,和一个容量为C的背包,物品i的重量是w[i],其价值为v[i].问如何选择装入背包的物品,使得装入背包中的总价值最大?(面对每个武平,只能有选择拿取或者不拿两种选择,不能选 ...

最新文章

  1. docker存储结构解析
  2. 《Scala机器学习》一一2.3 探索与利用问题
  3. 2020-11-20(页帧)
  4. 【学习笔记】30、Python基础综合练习
  5. 在项目开始前,为客户做专门的“需求变更流程”培训是必要的
  6. 什么是java构造函数_什么是java构造函数
  7. 找不同颜色小游戏html源码,Javascript实现找不同色块的游戏
  8. git reset hard/soft/mixed区别
  9. 这样设计算机屏幕保护,屏幕保护程序怎么设置图文教程
  10. Timeline编辑器绘制流程
  11. 人人商城图片错乱问题
  12. 高质量项目管理-甘特图模板+教程(附下载包)/ PMP项目管理可用
  13. P7714「EZEC-10」排列排序 题解
  14. 2020年阿贝尔(Abel)奖揭晓,两位概率论大佬横扫数学界最高荣誉
  15. SpringBoot中使用redis事务
  16. LeetCode 428. 序列化和反序列化 N 叉树***
  17. 骨传导耳机会损伤大脑吗?一分钟详细了解骨传导耳机
  18. 尚硅谷数据结构和算法01-数据结构介绍和稀疏数组
  19. 论文笔记:Integrating Semantic Segmentation and Retinex Model for Low Light Image Enhancement
  20. Linux系统 虚拟化篇之KVM

热门文章

  1. 异常 try – finally 注意的地方
  2. 【部署问题】解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid“ failed(2:No such file or directory)
  3. 在Markdown中更改图像大小
  4. 获取(可能)关联数组中的第一个键?
  5. 是否有一个“先前的兄弟”选择器?
  6. eclipse安装svn服务器
  7. linux+查看系统环境路径,Linux环境变量设置方法总结 PATH、LD_LIBRARY_PATH
  8. 安装Linux系统后无法启动win,安装Win10 CentOS7双系统后无法启动Win10系统怎么办
  9. 华为智慧屏云会议怎么操作_会议室预定系统有哪些?怎么操作
  10. 洛谷——P2043 质因子分解