尝试使用 C++ 从列表中打印无效的电子邮件地址?
Trying to print invalid email address from a list using c++?
我正在尝试从电子邮件地址列表中打印无效电子邮件地址列表(其中包含 space 而没有 @ 或 .)。该列表中有一些电子邮件地址有 space,没有“@”或“.”。但它仍然不打印任何东西。
//Declaring boolean variables
bool atPresent;
bool periodPresent;
bool spacePresent;
string emailid = someemailfrom a list;
atPresent = false;
periodPresent = false;
spacePresent = false;
//looking for @
size_t foundAt = emailid.find('@');
if (foundAt != string::npos) {
atPresent = true;
}
//looking for '.'
size_t foundPeriod = emailid.find('.');
if (foundPeriod != string::npos) {
periodPresent = true;
}
//looking for ' '
size_t foundSpace = emailid.find(' ');
if (foundSpace != string::npos) {
spacePresent = true;
}
//checking to see if all conditions match
if ( (atPresent == false) && (periodPresent == false) && (spacePresent == true)) {
cout << emailid << endl;
}
(atPresent == false) && (periodPresent == false) && (spacePresent == true)
错了。仅当满足无效地址的三个条件中的 所有 时才为真。但是只要满足 至少 条件,地址就无效。这将是
(atPresent == false) || (periodPresent == false) || (spacePresent == true)
并简化:
!atPresent || !periodPresent || spacePresent
将 && 语句替换为 ||语句:您只打印那些没有@并且有 space 并且有句点的语句。你应该使用正则表达式,这样你就可以在一行上完成,并且知道如何使用它们在你尝试验证用户数据时总是有用的
我正在尝试从电子邮件地址列表中打印无效电子邮件地址列表(其中包含 space 而没有 @ 或 .)。该列表中有一些电子邮件地址有 space,没有“@”或“.”。但它仍然不打印任何东西。
//Declaring boolean variables
bool atPresent;
bool periodPresent;
bool spacePresent;
string emailid = someemailfrom a list;
atPresent = false;
periodPresent = false;
spacePresent = false;
//looking for @
size_t foundAt = emailid.find('@');
if (foundAt != string::npos) {
atPresent = true;
}
//looking for '.'
size_t foundPeriod = emailid.find('.');
if (foundPeriod != string::npos) {
periodPresent = true;
}
//looking for ' '
size_t foundSpace = emailid.find(' ');
if (foundSpace != string::npos) {
spacePresent = true;
}
//checking to see if all conditions match
if ( (atPresent == false) && (periodPresent == false) && (spacePresent == true)) {
cout << emailid << endl;
}
(atPresent == false) && (periodPresent == false) && (spacePresent == true)
错了。仅当满足无效地址的三个条件中的 所有 时才为真。但是只要满足 至少 条件,地址就无效。这将是
(atPresent == false) || (periodPresent == false) || (spacePresent == true)
并简化:
!atPresent || !periodPresent || spacePresent
将 && 语句替换为 ||语句:您只打印那些没有@并且有 space 并且有句点的语句。你应该使用正则表达式,这样你就可以在一行上完成,并且知道如何使用它们在你尝试验证用户数据时总是有用的