| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4615 人关注过本帖
标题:[原创]wchar_t在汉字处理中的应用
只看楼主 加入收藏
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:22 
[原创]wchar_t在汉字处理中的应用

//双字节字符常量用于汉字存储
//显然有利于汉字处理如判回文
#include<stdio.h>
typedef unsigned short wchar_t;//用VC则应删除此行,因VC中wchar_t成了基本类型
main()
{
wchar_t s[ ]={'上','海','自','来','水','来','自','海','上',0};
char *p=(char*)s;
int i;
puts(p); //这样不能显示原文
for(i=0;s[i];i++,p++,p++)
printf("%c%c",*(p+1),*p);
printf("\n");
//这样才显示原文
//有兴趣者继续编程以判断这句话是否回文:
;;;;;;;;;;;;;;;;
}


[此贴子已经被作者于2006-6-23 13:16:09编辑过]

搜索更多相关主题的帖子: wchar 汉字处理 应用 
2006-06-22 15:16
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 

怎么wchar_t
编译不过去。
是不是我少了什么文件。


2006-06-22 15:35
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

用TC或VC皆可编译,关键是扩展名取c
即按c标准处理它。用cpp反而不行!


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-22 16:13
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
静老大灌水?

可惜不是你,陪我到最后
2006-06-22 16:36
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

..老大动作快.


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-22 16:37
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
老大不愧是老大,动作真快
我只看到一下就被删 了

可惜不是你,陪我到最后
2006-06-22 16:38
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

//双字节字符wchar_t
//判断是否汉字回文
#include<stdio.h>
main()
{
wchar_t s[10]={'上','海','自','来','水','来','自','海','上'};
char *p=(char*)s;
int i,j;
//puts(p);这样不能显示原文
//这样才显示原文:
for(i=0;s[i];i++,p++,p++)
printf("%c%c",*(p+1),*p);
printf("\n");
//继续编程以判断这句话是否回文:
for(j=0;s[j];j++);//测汉字数
for(j--,i=0;i<j;i++,j--)
if(s[i]-s[j])break;
if(i>=j)
printf("yes\n");//是回文
else
printf("no\n");//不是回文
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-22 16:52
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

这似乎并不是真正的Unicode输出方式,wchar_t应该搭配wprintf等宽字符函数用
[CODE]#include<stdio.h>
#include <locale.h>
void main()
{
wchar_t s[ ]=L"上海自来水来自海上";
_wsetlocale(LC_ALL, L"chs");
wprintf(L"%s\n",s);
return;
}[/CODE]



世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-06-22 17:08
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
/*谢谢8楼指点。顺便请教一下
怎样输出VC的__int64型整数?
*/
#include<stdio.h>
#include<locale.h>
main()
{
wchar_t s[]=L"上海自来水来自海上";
_wsetlocale(LC_ALL,L"chs"); //此不能省
wprintf(L"%s\n",s);
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-22 17:19
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-22 17:26
快速回复:[原创]wchar_t在汉字处理中的应用
数据加载中...
 
   



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

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