1)有且仅有一个'@'符号
2)'@'和'.'不能出现在字符串的首和尾
3)'@'之后至少要有一个'.',并且'@'不能和'.'直接相连
满足以上3条的字符串为合法邮箱,否则不合法,
编写程序验证输入是否合法
Input输入包含若干行,每一行为一个代验证的邮箱地址,长度小于100 Output每一行输入对应一行输出
如果验证合法,输出 YES
如果验证非法:输出 NO Sample Input
.a@b.com pku@edu.cn cs101@gmail.com cs101@gmailSample Output
NO YES YES NO
#include<stdio.h>
#include<string.h>
int main(void){
char a[10000];
int i;
int j;
int flag_1;
int flag_2;
int n;
int sum;
while(scanf("%s",a) != EOF){
flag_1 = 0;
flag_2 = 0;
sum = 0;
n = strlen(a);
if(a[0] == '@' || a[0] == '.' || a[n-1] == '@' || a[n-1] == '.'){
flag_1 = 1;
}
for(i = 0;i < n;i++){
if(a[i] == '@'){
sum++;
}
}
if(sum == 1 && flag_1 != 1){
for(i = 1;i < n;i++){
if(a[i-1] != '.' && a[i] == '@' && a[i+1] != '.'){
for(j = i + 2;j < n;j++){
if(a[j] == '.'){
flag_2 = 1;
puts("YES");
break;
}
}
break;
}
}
}
if(flag_2 != 1)
puts("NO");
}
return 0;
}