5313 [JL]判断邮箱地址 升级版

Posted 神犇(shenben)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5313 [JL]判断邮箱地址 升级版相关的知识,希望对你有一定的参考价值。

5313 [JL]判断邮箱地址 升级版

 

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 黄金 Gold
 
 
题目描述 Description

正确的邮箱地址格式要求:

1.格式:用户名@服务器名.后缀域名”

2.用户名、服务器名、后缀域名均由字母、英文与下划线组成

输入一个邮箱地址判断它是不是合法的邮箱地址。

输入格式:

1.不会出现多节域名(比如:[email protected] 这种不会出现)

2.不会出现中文字符

 

输入描述 Input Description

输入仅一行(Mail.in):

为疑似邮箱的字符串

 

输出描述 Output Description

输出仅一行(Mail.out):

是邮箱,输出“yes”,

不是则输出“no”(不包括引号)

(样例输出中,括号中的内容不用输出)

 

样例输入 Sample Input

输入样例#1:

[email protected]

输入样例#2:

[email protected]

输入样例#3:

[email protected]

 

输入样例#4:

#$%@sina.com

 

 

样例输出 Sample Output

输出样例#1:

no
(没有服务器名)

输出样例#2:

yes
(符合要求)

输出样例#3:

no
(“@”位置不对,没有后缀名)

输出样例#4:

no
(无效字符)

 

数据范围及提示 Data Size & Hint

邮箱字符串长度<=255

分类标签 Tags 点此展开 

 
暂无标签
题解:
模拟即可
AC代码:
#include<cstdio>
#include<cstring>
using namespace std;
char s[300];
inline bool judge(char &ch){
    return (ch>=A&&ch<=Z)||(ch>=a&&ch<=z)||(ch>=0&&ch<=9)||(ch==_);
}
int main(){
    scanf("%s",s);
    int len=strlen(s);
    int ai=0;int flag=0;
    for(int i=0;i<len;i++) if(s[i]==@){ai=i;break;}
    if(!ai){puts("no");return 0;}
    for(int i=0;i<ai;i++) if(!judge(s[i])){puts("no");return 0;}
    if(!judge(s[ai+1])){puts("no");return 0;}
    for(int i=ai+2;i<len;i++) if(s[i]==.){
        flag=1;
        if(!judge(s[i+1])){puts("no");return 0;}
    }
    if(!flag){puts("no");return 0;}
    puts("yes");
    return 0;
}

 

以上是关于5313 [JL]判断邮箱地址 升级版的主要内容,如果未能解决你的问题,请参考以下文章

原生JavaScript判断是否为邮箱危险字符验证长度验证网址验证小数整数浮点数等常用的验证

如何判断一个邮箱地址是否教育邮箱?

SMTP判断邮箱是否存在 检查email地址是否真实存在

Java中常用的正则表达式判断,如IP地址电话号码邮箱等

判断 邮箱格式是否正确

无法将 DifferentialEquation.jl 添加到 Julia 1.7.0