Estou tentando fazer um programa que leia o email de uma pessoa. Porém o e-mail é válido apenas se existir apenas um arroba, ou seja, não pode existir nenhum arroba e nem mais que um arroba. Também, deve existir, pelo menos um ponto. Além disto, tem que haver apenas letras minúsculas. O código que montei, está dando erro. Ele está validando quando eu coloco letras maiúsculas.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main()
{
//Declarações
char email[100];
char username[10];
char password[40];
int i, arroba;
//Definindo o comando para acentuação
setlocale(LC_ALL, "Portuguese");
//inicializando as variáveis
arroba = 0;
//Instruções
//E-MAIL
printf("Prezado(a) usuário(a), seja bem vindo! Por gentileza, informe o seu e-mail: \n");
scanf("%s", email);
printf("O e-mail digitado é: %s \n", email);
for (i = 0; i < strlen(email); i++){
if(email[i]=='@'){
arroba = arroba + 1;
}
while(email[i]>='A' && email[i]<='Z' || arroba!=1){
printf("E-mail digitado é INVÁLIDO. Por favor tente novamente!\n");
printf("Por gentileza, informe o seu e-mail:\n");
scanf("%s", email);
arroba = 0 ;
for (i = 0; i < strlen(email); i++){
if(email[i]=='@'){
arroba = arroba + 1;
}
printf("%d\n", arroba);
}
}
}