| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1137 人关注过本帖
标题:求助: 宽字符的判断问题
只看楼主 加入收藏
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
结帖率:66.67%
收藏
 问题点数:0 回复次数:5 
求助: 宽字符的判断问题
弄了一天了,也没出个头绪。
简单说就是,一个short类型的指针,指向一个字符串(UTF16格式的)
用int类型的变量一个字符一个字符的取出,判断。
问题:现在的代码只支持了窄字符(8位)的判断,利用ANSI码比较。但是宽字节的字符(如中文)就不知道怎么判断了,求助
搜索更多相关主题的帖子: 字符 判断 
2005-10-24 15:31
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
得分:0 
是否可以考虑使用wchar_t类型?

再见,理想!
2005-10-24 16:00
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
我是想问问,怎么判断它是个字符串,如果是窄字符,我可以和"a""z"比较,如果是宽的,不知道怎么区分了。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2005-10-24 16:09
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
得分:0 
楼主看看这个程序,应该满足你的要求:

#include <iostream>

#include <string>

#include <cstring>

#include <cstdio>

int main(int argc, char *argv[])

{

wchar_t test[] = L"你看到aBc了吗?";

std::cout << "test中小写字母有:\n";

int length = wcslen(test);

for(int i = 0; i < length; i++) {

if(test[i] >= L'a' && test[i] <= L'z')

printf("%c\n", test[i]);

}

return 0;

}


再见,理想!
2005-10-24 20:49
sailer
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-10-12
收藏
得分:0 

3楼的有点错误我改了以下啊 。 #include <string>

#include <iostream.h>

int main(int argc, char *argv[])

{

wchar_t test[] = L"你看到aBcf了吗?";

cout << "test中小写字母有: ";

int length = wcslen(test);

for(int i = 0; i < length; i++) {

if(test[i] >= L'a' && test[i] <= L'z')

printf("%c\n", test[i]);

}

return 0;

}


希望大家多多配合他人,多多帮助他人。 支持国家的 产品,尽量不买外国货。
2005-10-25 00:04
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
这样还是依靠区分窄字符来判断的。以jellen给出的程序来看,如何判断“你看到”这样的字符呢?英文字符可以判断,那么中文、日文、韩文那样的字符怎么判断呢?
想通过字符编码界限来区分,但是很不幸,有交集

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2005-10-25 14:34
快速回复:求助: 宽字符的判断问题
数据加载中...
 
   



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

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