其实你只需要判断str中是否有~,`!@#$%^&*():;"'<>?.即可
解决方案 »
- VC6编写读写Oracle数据库程序
- 在automation要怎么样才能使用标记为“restricted”的属性?(高难度技术性问题)
- 跨套间marshal组件指针,用其返回其他组件对像出错!
- UDP穿透:两个子网内的客户端对发数据返回多成功,但两端多没有真正收到数据为什么
- 请帮忙!从win2000网络邻居无法登陆linux的samba
- 我现在有一个主界面(是对话框),我想在这个对话框中有它的几个子对话框,这应该怎么做?
- 在使用《计算机常用数值计算方法与程序(C++版)》时遇到了困难,请求帮助!!
- oracle版的问题,拿到这边来问问,一个实在令我想不通的问题,关于update语句更新(oracle)
- 哪里有用vc语言,使用ADO方式开发数据库应用程序的书或者资料?
- 如何给树控件发送一个LVN_ITEMCHANGED消息?ITEM项由我提供.
- 在上海找工作:最好是C++相关的软件开发
- vista系统下学习vc++安装哪个版本的好?
BOOL Search(CString str) // 这个是你传进来的,要检测的字符串
{ for(int i=0; i<str.GetLength(); i++)
{
WCHAR h = str.GetAt(i);
if( (h<0XA0B0 && h>122) || h>0xfef7 || (h>90 && h<97) ||(h>57 && h<65) || h<48)
return FALSE;
}
return TRUE;
}
英文字母与数字无可厚非,很容易。
关键是汉字编码,而多种编码又不一样。
最后找到这个:
http://www.herongyang.com/gb2312/
得出汉字编码范围0x3300~0x9fff (也许不准,你看看),这之中不包括一些特殊的汉字字符
[参考]
http://www.css8.cn/css8_document/gb2312.htm
http://huggin.bokee.com/3857070.html
http://www.easydone.cn/014/200604171755489528.htm
//这是我测的码
Search(CString & str) // 这个是你传进来的,要检测的字符串
{
char tt[1024];
WCHAR wt[1024];
memset(tt, 0, sizeof(tt));
memset(wt, 0, sizeof(wt));
strcpy(tt, str.GetBuffer(str.GetLength()));
// str.ReleaseBuffer();
MultiByteToWideChar(CP_THREAD_ACP, 0, tt, strlen(tt)+1, wt, 256);
int i = strlen(tt);
for(int j=0; j<i; j++)
{
WCHAR h = wt[j];
if(h == 0)
break;
if( (h<0x3300 && h>122) || h>0X9fff || (h>90 && h<97) ||(h>57 && h<65) || h<48 )
return FALSE;//AfxMessageBox("33");
}
return TRUE;
}void CTest0Dlg::OnButton1()
{
BOOL b;
// CString str(L"日文的平假名及片假名等都在此区编码用户可以UNICODE同现在流行的代码页最显著不同点在于根据需要自己定义此区的编码");
CString str;
CStdioFile file;
file.Open("D:\\蓝绿激光在潜艇通信技术上的应用.txt", CFile::modeRead);
b = file.ReadString(str);
while(b)
{
b = file.ReadString(str);
Search(str);
} file.Close();
}D:\\蓝绿激光在潜艇通信技术上的应用.txt 如下
[code=INIFile]蓝绿激光在潜艇通信技术上的应用潜艇上的远程弹道核武器是战略核武器系统中最具有威慑力量的一个支柱
但也是从控制和指挥方面讲最脆弱的一环这是因为在利用无线电通信时因海水是良导体趋肤效应将严重影响电磁波在海水中的
传输, 即使是超低频通信系统穿透海水的深度也极有限最深仅达80米而且超低频系统耗资大数据率极低易遭受敌方直接攻击或
核爆炸电磁脉冲的破坏利用声频信道也因声波的传播速度太慢传输距离和容量都很有限不能保证进行可靠的通信蓝绿激光的工
作波段是海洋中光传播的窗口 采用蓝绿激光通信, 就可能与全球海洋中活动的潜艇建立起通信通道这样通信时潜艇完全可以不
用浮出水面而在巡航深度或更深的海水中用自身壳体上的接收器抄收报文丝毫不影响潜艇的活动也不会暴露目标另外利用蓝绿
激光通信还具有高数据传输率优良的保密性抗干扰性和双工通信的能力美国海军从1977年提出卫星―潜艇通信的可行性后 就与
美国国防研究远景规划局开始执行联合战略激光通信计划从1980年起以几乎每两年一次的频率进行了迄今为止共6次海上大型蓝
绿激光对潜通信试验这些试验包括成功进行的12千米高空对水下300米深海的潜艇的单工激光通信试验以及在更高的天空长续航时间的模拟无人驾驶飞机与以正常下潜深度和航速航行的潜艇间的双工激光通信可行性试验证实了蓝绿激光通信能在天气不正
常大暴雨海水浑浊等恶劣条件下正常进行
[/code]编码比较复杂,LZ如果有兴趣多研究一下,不要信我一面之辞(我怕又误人子弟)。
isdigit()是否数字
isalpha()是否字母
有那么难吗,还发两个帖子?
如果LZ不用判断日语或韩语等其它双字节的字符,就用IsDBCSLeadByteEx