CString的每个字符合法性判断问题
这是在vc++6.0下,我写的一个对字符串的字符合法性的判断,
我的本意是把字符串放到一个数组里,然后给数组一个指针变量,
利用指针遍历数组里的每一个字符,看是否符合要求
/* //把字符串放到数组里
//m_strSysUser_Add_Account 是CString 变量
char SysUserAccount[32] , *ps;
ps = SysUserAccount;
strcpy( SysUserAccount,( LPCSTR )m_strSysUser_Add_Account);
//合法性判断
int i;
for ( i=0;i<m_strSysUser_Add_Account.GetLength();i++)
{
//测试用-----------------//
int result
result=( 'a' < *ps < 'z' );
//-----------------------//
if(('a'<*ps<'z')||('A'<*ps<'Z')||('0'<*ps<'9')||(*ps=='-'))
ps++;
else
{
MessageBox( "登录账号不能为特殊字符!" );
return;
}
}
*/
但是不管*ps取到的字符是什么,
result=( 'a' < *ps < 'z' );
result返回的都是1.
比如我输入'1*&Aa',不管哪个字符比较,返回的result都是1.