邮箱地址验证

#include <bits/stdc++.h>
using namespace std;
bool f(string a){
    size_t pos = a.find('@');
    if(pos==string::npos || pos==0){
        return false;
    }
    size_t pos1 = a.find('.',pos+2);
    if(pos==string::npos){
        return false;
    }
    size_t pos2 = a.find(' ');
    if(pos2!=string::npos){
        return false;
    }
    for(int i = 0;i<pos1;i++){
        if(a[i]=='@' && i!=pos){
            return false; 
        }
    }
    for(int i = 0;i<pos;i++){
        if(a[i]=='.'){
            return false;
        }
    }
    size_t pos3 = a.rfind('.');
    for(int i = pos3;i<a.size();i++){
        if(a[i]>='0' && a[i]<='9'){
            return false;
        }
    }
    int j = 0;
    for(int i = pos;i<a.size();i++){
        if(a[i]=='.'){
            j++;
        }
        if(a[i-1]=='.' && a[i]=='.'){
            return false;
        }
    }
    if(j>3){
        return false;
    }
    return true;
}
int main(){
    string a;
    cout<<"请输入邮箱地址:";
    getline(cin,a);
    if(f(a)==false){
        cout<<"邮箱地址错误"; 
    }else{
        cout<<"邮箱地址正确";
    }
    return 0;
} 

 

posted @ 2025-05-31 15:10  王一行(小号)  阅读(6)  评论(0)    收藏  举报