Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created September 9, 2022 00:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/71be139749956da5e959331474b97ee2 to your computer and use it in GitHub Desktop.
Save parzibyte/71be139749956da5e959331474b97ee2 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <string.h>
#define MAXIMA_LONGITUD_CADENA 1000
int indiceDeCaracterEnCadena(char *cadena, char caracter)
{
int indice = 0;
while (cadena[indice] != '\0')
{
char actual = cadena[indice];
if (actual == caracter)
{
return indice;
}
indice++;
}
return -1;
}
int ultimoIndiceDeCaracterEnCadena(char *cadena, char caracter)
{
int indice = strlen(cadena) - 1;
while (indice >= 0)
{
char actual = cadena[indice];
if (actual == caracter)
{
return indice;
}
indice--;
}
return -1;
}
int esCorreoElectronico(char correo[MAXIMA_LONGITUD_CADENA])
{
int indicePunto = indiceDeCaracterEnCadena(correo, '.');
int indiceArroba = indiceDeCaracterEnCadena(correo, '@');
if (indicePunto == -1 || indiceArroba == -1)
{
return 0;
}
if (indicePunto != ultimoIndiceDeCaracterEnCadena(correo, '.'))
{
return 0;
}
if (indiceArroba != ultimoIndiceDeCaracterEnCadena(correo, '@'))
{
return 0;
}
if (indicePunto < indiceArroba)
{
return 0;
}
return 1;
}
int main()
{
printf("%d\n", esCorreoElectronico("parzibyte@ejemplo.com")); // 1
printf("%d\n", esCorreoElectronico("parzibyte.ejemplo@com")); // 0
printf("%d\n", esCorreoElectronico("parzibyte")); // 0
printf("%d\n", esCorreoElectronico("parzibyte@ejemplo")); // 0
printf("%d\n", esCorreoElectronico("parzibyte.ejemplo")); // 0
printf("%d\n", esCorreoElectronico("mi_correo_muy_largo@ejemplo.com")); // 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment