求助帖 百炼邮箱验证
- 大佬看下我的代码错在哪里 一直AC不了
POJ 注册的时候需要用户输入邮箱,验证邮箱的规则包括:
1)有且仅有一个’@'符号
2)’@‘和’.'不能出现在字符串的首和尾
3)’@‘之后至少要有一个’.’,并且’@‘不能和’.'直接相连
满足以上3条的字符串为合法邮箱,否则不合法,
编写程序验证输入是否合法
Input
输入包含若干行,每一行为一个代验证的邮箱地址,长度小于100
Output
每一行输入对应一行输出
如果验证合法,输出 YES
如果验证非法:输出 NO
Sample Input
.a@b.com
pku@edu.cn
cs101@gmail.com
cs101@gmail
Sample Output
NO
YES
YES
NO
下来是我的代码
#include <stdio.h>
#include <string.h>
#define N 100
#define T 1
#define F 0
char arr[N+1];
int main(){
int len,i,cout,ture,ad,ad_;
while(scanf("%s",arr)!=EOF){
len=strlen(arr);
ture=T;
cout=0;
ad=0;
ad_=0;
for(i=0;i<len;i++){
if(arr[i]=='@'){
if(cout==0)cout=1;
else {
ture=F;
break;}
ad=i;
}
}
if(ad==0)ture=F;
if(arr[0]=='@'||arr[0]=='.'||arr[len-1]=='@'||arr[len-1]=='.')ture=F;
for(i=0;i<len;i++){
if(arr[i]=='.'){
ad_=i;
if(i==ad+1)ture=F;
}
}
if(ad_==0)ture=F;
if(ad_<=ad)ture=F;
if(ture)printf("YES\n");
else printf("NO\n");
}
return 0;
}
欢迎留言 或者加Q14411197一起讨论CCF-CSP竞赛的一些题目