【发布时间】:2015-04-05 09:41:47
【问题描述】:
我现在正在编写电子邮件验证器,我想检查字符串是否包含除 '-'、'_'、'.'、'@' 之外的任何符号(不是数字或字符)。如果它不包含,我必须提高名为“counter”的变量。
这是我迄今为止尝试过的:
for (int i = 0; i < mail.length(); i++) {
if ((mail[i] >= 'A' && mail[i] <= 'Z') || (mail[i] >= 'a' && mail[i] <= 'z') || (mail[i] >= '0' && mail[i] <= '9') || (mail[i] == '.' || mail[i] == '-') || (mail[i] == '@' || mail[i] == '_')) {
if(i == mail.length()) {
counter+=1;
break;
}
}
}
【问题讨论】:
-
正则表达式,提升字符串算法,一个简单的
std::find_if... -
让你的 if 更容易使用
<cctype> -
我想在没有正则表达式的情况下这样做,因为我是初学者。所以我想要更简单的算法。
-
i永远不能是mail.length() -
@Bartek 正则表达式的问题是你现在有两个问题(或者如果你使用标准库的正则表达式计算的话,三个问题)
标签: c++