求助帖 百鍊郵箱驗證
- 大佬看下我的代碼錯在哪裏 一直AC不了
POJ 註冊的時候需要用戶輸入郵箱,驗證郵箱的規則包括:
1)有且僅有一個’@'符號
2)’@‘和’.'不能出現在字符串的首和尾
3)’@‘之後至少要有一個’.’,並且’@‘不能和’.'直接相連
滿足以上3條的字符串爲合法郵箱,否則不合法,
編寫程序驗證輸入是否合法
Input
輸入包含若干行,每一行爲一個代驗證的郵箱地址,長度小於100
Output
每一行輸入對應一行輸出
如果驗證合法,輸出 YES
如果驗證非法:輸出 NO
Sample Input
[email protected]
[email protected]
[email protected]
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競賽的一些題目