您的位置:首页 > 其它

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

2016-09-18 09:52 190 查看

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

时间限制: 1 s

空间限制: 1000 KB

题目等级 : 黄金 Gold

题解
查看运行结果

题目描述 Description

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

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

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

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

输入格式:

1.不会出现多节域名(比如:123@sina.com.cn 这种不会出现)

2.不会出现中文字符

输入描述 Input Description

输入仅一行(Mail.in):

为疑似邮箱的字符串

输出描述 Output Description

输出仅一行(Mail.out):

是邮箱,输出“yes”,

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

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

样例输入 Sample Input

输入样例#1:

45678sss@.cn

输入样例#2:

hello@microsoft.cn

输入样例#3:

luogu.luogu@


输入样例#4:

#$%@sina.com


样例输出 Sample Output

输出样例#1:

no
(没有服务器名)

输出样例#2:

yes
(符合要求)

输出样例#3:

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

输出样例#4:

no
(无效字符)


数据范围及提示 Data Size & Hint

邮箱字符串长度<=255

分类标签 Tags 点此展开

暂无标签
[b]题解:[/b]
模拟即可
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: