Hola buenas,
tengo que hacer una funcion que reconozca emails , he sacado esto.
Si alguien me puede ayudar, se lo agradeceria
int emails(char *email)   
{
    int i;
    
    if (email==NULL)
        return 0;
   
    for (i=0; i<email ; i++)
    {
        if(email[0]== '@' || email[0]== '.')
            return 0;
            
        if(email!='@')
            return 0;
        
    }
    return 1;
}
			
			
			
				he probado con esto tambien,
 soy principiante
int emails(char *email)
{
    char EMAIL_LEN [50];
    char user[EMAIL_LEN];
    char site[EMAIL_LEN];
    char domain[4];
  int i=0;
  if (email==NULL)
        return 0;
   else
   {
        for (i=0; i<email[EMAIL_LEN] ; i++)
            if(email[EMAIL_LEN]=!"%[_a-zA-Z0-9.]@%[_a-zA-Z0-9.]", user, domain){
               return 0;
}
			
			
			
				EMAIL_LEN es un entero, un tamaño, no un char[50].
int EMAIL_LEN
En la condición del for, estás mirando si 'i' es menor que un caracter. Tienes que mirar si 'i' es menor que la longitud del email.
for(i=0; i<EMAIL_LEN; i++)
A partir de ahí, las comprobaciones que quieras hacer.
´como detalle,m en el segundo código pusiste email[ EMAIL_LEN ]. Será email. Y luego, "=!". Para ver si es diferente, es "!=". Luego, ese regex que pusiste, y esas comas ",user, domain", no tienen sentido aquí. No sñ´´e de qué lenguaje vienes, pero eso no existe en C ni en C++.
			
			
			
				averigua sobre expresiones regulares, con ello se hace mas rapido 
			
			
			
				Gracias!!! por la ayuda
			
			
			
				Mira: https://www.owasp.org/index.php/OWASP_Validation_Regex_Repository
  <regex>
  	<name>e-mail</name>
  	<pattern><![CDATA[^[a-zA-Z0-9+&*-]+(?:\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,7}$]]></pattern>
  	<description>A valid e-mail address</description>
  </regex>