懂中文字符的好心人,麻烦来看看数据类型

wenyubo 2011-09-13 03:30:13
我用c语言开发一个项目;其中有对数据类型的要求。对其中有种类型不清楚。麻烦看看。

数据类型 说明

STRING GBK编码,采用0终结符,若无数据,则放一个0终结符。


这个STRING 类型,主要来存,车牌号。对其中有几点不清楚。

1:这个STRING类型,c中是没有这个类型的。我想因为是GBK编码,应该存中文的,是不是wchar_t来定义一个,比如wchar_t[30] STRING;这样就是吗?


2:0终结符,就是放一个“0”吗?


3:在linux下一个wchar_t是4个字节,不是一个中文是2个字节码?



我该怎么做啊,不知道有谁能帮帮我吗,
...全文
58 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyubo 2011-09-16
  • 打赏
  • 举报
回复
谢谢啊。[Quote=引用 3 楼 mesh4444 的回复:]

1、GBK是一种编码方式,而wchar_t是一种存储格式,两种东西,两种概念……
2、GBK格式有着自己的编码要求,不过在实际编程当中,没人关心这个,因为肯定会有一个函数,或者在I/O函数中肯定会有一个参数来标定写入字符的编码方式,这个就需要你去查看API文档了。
3、c语言没有对象的概念,自然也没有string的这种类型,但是c语言明确的说过,是char[]来存储string类型的数据,所……
[/Quote]
jihen 2011-09-16
  • 打赏
  • 举报
回复
去看看GBK编码,知道里面怎么放置数据就行了.直接保存到char 里面就好啦...任何数据都可以这么存,就看你怎么解析了.
子谋 2011-09-13
  • 打赏
  • 举报
回复
1、GBK是一种编码方式,而wchar_t是一种存储格式,两种东西,两种概念……
2、GBK格式有着自己的编码要求,不过在实际编程当中,没人关心这个,因为肯定会有一个函数,或者在I/O函数中肯定会有一个参数来标定写入字符的编码方式,这个就需要你去查看API文档了。
3、c语言没有对象的概念,自然也没有string的这种类型,但是c语言明确的说过,是char[]来存储string类型的数据,所以,实际上string类型就是char[]类型……
4、wchar_t在vc里是2个字节,在linux是4个字节,这完全是不同编译器的不同解释方法,跟实际编程没啥关系,你照样用wchar_t[]来模拟string,没有任何问题(程序移植是另外一码事),如果你觉得浪费空间,就找2个字节的数据类型,或者用char[]一样可以,没人规定char[]一次只能写一个地址空间,怎么用完全是程序员的事……
5、0一向是c语言的字符串结尾标志,所谓的0并不是阿拉伯数字的0(ascii的48,看看ascii表就知道了),而是ascii的0,也就是ascii表的第一个字符,是一个控制字符,无法显示的,转义字符用"\0"表示,如果直接给数组赋值,就是a[i]=0……
jackyjkchen 2011-09-13
  • 打赏
  • 举报
回复
GBK编码是变长码,用char*保存即可
qq120848369 2011-09-13
  • 打赏
  • 举报
回复
GBK不是用wchar_t的,用char来存的吧,编码我也不懂,围观一下。

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧