繁体   English   中英

如何在字符串中查找一组字符

[英]How to find a set of characters in a string

我正在做一个项目,但遇到了一个问题。 我需要在字符串中找到一组字符,比如如果用户输入他/她的电子邮件,那么我必须检查电子邮件是否正确。 我发现它使用字符串类find函数,但我没有成功。 我可以使用循环来查找最后一个字符,但我正在寻找一种最简单的方法来处理它。 示例: email@gmail.com我想将.com作为字符串的最后一个字符。

这是我的代码:

string checkEmail(const char* const prompt) {
    string str;
    bool check = true;
    do {
        cout << prompt << " : ";
        cin >> str;
        if (str.find_last_of(".com")) // here is the error, I think
            check = false;
    } while (check);
    return str;
}

您可以使用std::string::substr首先将最后 4 个字符作为std::string ,然后您可以将其与“.com”进行比较:

std::string email = "example@mail.com";
std::string ext = email.substr(email.length() - 4, 4);
bool check = ext == ".com";

要检查它是否找到:

if (str.find_last_of(".com")==std::string::npos){
    check = false;
}

要检查它是否找到:

if (str.find_last_of(".com")!=std::string::npos){
    check = false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM