如题所述
我是这样想的,你先用ASC||来判断是否有字母,只要遍历到一个,就设置一个变量a加1,跳出循环;再遍历找是否有数字,找到一个,再让变量a加1,跳出循环。如果a==2,说明新密码同时包含字母和数字
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-27
可以两个char型的变脸标记,也可以使用一个char型变量的两bit做标记。
遍历密码时做检查,存在字母,字母标记被set;存在数字则数字标记被set。
只有两个标记都存在时,密码才符合要求追问
遍历密码时做检查,存在字母,字母标记被set;存在数字则数字标记被set。
只有两个标记都存在时,密码才符合要求追问
能不能写个程序举个例子。。这种不太懂(>﹏<) 一定采纳。。
急需例子。。
int mimaCheck(char* pstrMima)
{
char cBitMap = 0;
if((NULL == pstrMima) || (0==strlen(pstrMima)))
{
return -1;
}
while('\0' != *pstrMima)
{
if( *pstrMima >='0' && *pstrMima ='a' && *pstrMima ='A' && *pstrMima <= 'Z'))
{
cBitMap = cBitMap & 0x02;
}
}
if(3 == cBitMap) {
//检查成功
} else {
//你的检查不成功
}
}
第2个回答 2014-12-17
int n = strlen(str); //str 新密码
int ch=0, dig = 0;
for(int i = 0;i<n;i++)
{
if( str[i]>='0' && str[i]>='9'){
dig++ ;
} else{
ch++ ;
}
}
if(dig != 0 && ch != 0) {
//就包含数字和字母,你的处理
} else {
//你的处理
}
int ch=0, dig = 0;
for(int i = 0;i<n;i++)
{
if( str[i]>='0' && str[i]>='9'){
dig++ ;
} else{
ch++ ;
}
}
if(dig != 0 && ch != 0) {
//就包含数字和字母,你的处理
} else {
//你的处理
}