我有一个函数要用来检查字符串是否格式正确。我正在尝试通过查看每个字符并确定它是否为正确的类型来做到这一点。但是,无论我尝试什么,都会遇到无法解决的错误。代码如下:

bool valid(string checkcode)
{
    if(checkcode.length()!=6) return false;
    else if(isalpha(checkcode.at(0)))&(isalpha(checkcode.at(1)))&(isdigit(checkcode.at(2)))&(isdigit(checkcode.at(3)))&(isalpha(checkcode.at(4)))&(isalpha(checkcode.at(5))) return true;
    else return false;
}

我遇到的错误是在第一个'&'处,它说“错误:表达式必须是Ivalue或函数指示符”我真的被困在这里,不胜感激。

最佳答案

 isalpha(checkcode.at(0)))&(isalpha(checkcode.at(1)))
                         //bit and

应该
isalpha(checkcode.at(0)))&&(isalpha(checkcode.at(1)))
                        //^^logical and

在这种情况下,您需要使用logical and

您还需要确保括号匹配。
//better to format multiple conditions and make sure () match
if(
    (isalpha(checkcode.at(0)))
  &&(isalpha(checkcode.at(1)))
  &&(isdigit(checkcode.at(2)))
  &&(isdigit(checkcode.at(3)))
  &&(isalpha(checkcode.at(4)))
  &&(isalpha(checkcode.at(5)))
 )
 return true;

10-04 20:21