| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1327 人关注过本帖
标题:关于汉字字符串的一些问题与疑惑
取消只看楼主 加入收藏
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:4 
关于汉字字符串的一些问题与疑惑
程序代码:
#include<stdio.h>
main()
{
    char a[3]="";
    printf("%c%c\n",a[0],a[1]);
    printf("%d %d\n",a[0],a[1]);
    unsigned int i=a[1];
    int j=a[0];
    printf("%u  %d\n",a[1],a[0]);
    printf("%d  %d\n",i,j);
  
    char b[2]="2";
    printf("%u\n",b[0]);
}
如上程序所示,
问题一:printf("%c%c\n",a[0],a[1]);这个是我在本论坛上找到的,居然这样能够输出一个汉字,不知道谁能解释下?我有点不能理解

问题二:printf("%d %d\n",a[0],a[1]);为什么输出的是负数?

问题三:关于汉字的字符的话,应该涉及到了Unicode了吧,我网上查了下一的unicode编码十进制为19968,请问我能否在程序中输出任意汉字的编码??如何得出汉字的编码?

问题四:问题一中的printf("%c%c\n",a[0],a[1]);中将%c%c改为%c %c的话输出了两个??问号,请问这个怎么回事,能解释下吗?

问题五:printf("%u  %d\n",a[1],a[0]);为什么我用无符号整型输出a[1]时输出的是4294967227,这个数字非常大,已经超出了无符号整型的范围了吧,请问怎么回事,是错误吗?我自己对问题五我写了 char b[2]="2";printf("%u\n",b[0]);这个无汉字的测试,这个没有问题啊!

希望能够分别回答,不然会搞不清楚的!谢谢合作!
搜索更多相关主题的帖子: 汉字 字符 
2010-05-18 18:35
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
关于问题一,我知道一个汉字两个字符的,如果说printf("%s\n",a);输出一的话我当然能够理解,就是问什么%c%c连在一起输出就是一个汉字了呢?我不理解的就是为什么%c%c一起就可以输出一来了?
问题二:printf("%d %d\n",(unsigned char)a[0],(unsigned char)a[1]);这个输出的是210 187 是什么的值,是unicode的吗?
问题三:那如何获取GB2312编码?


[ 本帖最后由 wingfeng 于 2010-5-18 19:24 编辑 ]
2010-05-18 19:21
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 

大部分明白了。原来C/C++不支持Unicode,我对这些编码不了解,那c/c++支持哪些编码??就ASCII和GB2321?(问题问的有点怪,别介意!)
2010-05-18 19:48
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
回复 7楼 NoSoul
这么多啊,我都没有碰到过的样子,那些都是怎么用的啊??能介绍一个吗?
2010-05-18 20:11
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
回复 9楼 NoSoul
这样啊,呵呵,谢谢了!
2010-05-18 21:42
快速回复:关于汉字字符串的一些问题与疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.144614 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved