回复 10楼 linlulu001
版主有一帖专门谈这个的,我还收藏了,居然忘了。
int main()
{
int m,i;
int k=0; //当作布尔变量用,记录‘@’是否存在
int n=0; //当作布尔变量用,记录‘.’是否存在
int kk,nn; //记录@和.出现的位置
int kk1,nn1; //记录@和.出现的次数
char str[20],ch;
printf("Please enter your new email: ");
do{
fflush(stdin);
scanf (" %[0-9-A-Z-a-z@.^]", str); //用这句输入,只能读取数字,字母和‘@’‘.’,出现范围以外的内容读取结束。
m=strlen(str);
kk=0;
kk1=0;
nn=0;
nn1=0;
for(i=0;i<m;i++)
{
ch=str[i];
if(ch=='@') { k=1;kk=i;kk1++;}
if(ch=='.') { n=1;nn=i;nn1++;}
}
if(kk>nn||nn-kk==1||kk1!=1||nn1!=1) {k=0;n=0;printf("输入的邮箱有误,请重新输入:\n");}
/*if(kk!=3||nn!=7||m-nn!=4||kk1!=1||nn1!=1) {k=0;n=0;printf("输入的邮箱有误,请重新输入:\n");}
确实是想输入这个格式***@***.***可以用这句来判断*/
}while(!k&&!n);
/*fp=fopen("管理员信息.txt","w+");
fprintf(fp,"%s %s %s", administrator.ID, administrator.Password,administrator.email);
fclose(fp);
printf("Successful modification!");*/
}