【发布时间】:2023-12-30 15:07:01
【问题描述】:
如何在不手动比较每个字母的情况下检查 value 的最后一个字符是否是任何字母?
if(value.endsWith("A",Qt::CaseInsensitive)==true)
...
这是我目前的代码,值必须以 Y/X/Z 开头,并且有 9 个字符
void Extranjero::setNIE(const QString &value)
{
if(value.startsWith("Y",Qt::CaseInsensitive)==true && value.length()==9)
{
NIE = value;
}
else if(value.startsWith("X",Qt::CaseInsensitive)==true && value.length()==9)
{
NIE = value;
}
else if(value.startsWith("Z",Qt::CaseInsensitive)==true && value.length()==9)
{
NIE = value;
}
else NIE = "Problemon";
}
【问题讨论】:
-
为什么不使用
std::isalpha? -
这能回答你的问题吗? *.com/questions/8611815/… 它要求字母和数字,但答案应该很容易调整
-
谢谢!我不知道 isalpha() 函数
-
经典是
if ((c >= 'A') && (c <= 'Z'))。不过,这仅涵盖大写。 -
@DavidSchwartz - 它可能是“经典”,但它是错误的。例如,字符编码为EBCDIC时不起作用。