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

时间:2016-05-12 07:51:06

标签: c++ string find substring

我正在开展一个项目,我遇到了一个问题。我需要在字符串中找到一组字符,如果用户输入他/她的电子邮件,那么我必须检查电子邮件是否正确。我发现它使用字符串类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;
}

2 个答案:

答案 0 :(得分:0)

您可以使用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";

答案 1 :(得分:0)

检查是否

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

检查是否

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