|
Email címek
Írjon függvényt, amely a paramétereként megkapott tetszőleges hosszúságú sztringről eldönti,
hogy az szabályos email cím-e! Ha az, akkor a függvény igaz értéket, egyébként hamisat adjon
vissza! Egy sztringet szabályos email címnek tekintünk, ha
-
csak betű, számjegy, '-' (mínuszjel), '@' (kukac) és '.' (pont) karaktereket
tartalmaz,
-
pontosan egy darab '@' (kukac) karaktert tartalmaz,
-
a '@' (kukac) karakter nem a legelső és nem is a legutolsó karakter a sztringben,
-
a '@' (kukac) karakter mögötti rész legalább egy '.' (pont) karaktert tartalmaz,
-
a '@' (kukac) karakter utáni részben minden '.' (pont) karaktert megelőz legalább egy
karakter, amely nem '.' (pont) és nem is '@' (kukac), és
-
az utolsó '.' (pont) karakter utáni részsztring legalább 2 karakter hosszúságú.
A függvény specifikációja
int is_email_address( char * );
Megjegyzés
A függvényt helyezze az email.c nevű állományba, és ezt az állományt küldje
be megoldásként a kiértékelő rendszernek! Megoldását a példa bemenetben szereplő adatokkal az
alábbi két állomány segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer
nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!
main.c
#include <stdio.h> #include <stdlib.h>
int main() { char line[ 50 ]; int is_email_address( char * );
while ( gets( line ) != NULL ) if ( is_email_address( line ) ) puts( "YES" ); else puts( "NO" ); return EXIT_SUCCESS; }
letöltés szöveges állományként
Makefile
CC = gcc OBJS = main.o email.o TARGETS = main
all: $(TARGETS)
main: main.o email.o $(CC) main.o email.o -o main
main.o: main.c $(CC) -c main.c
email.o: email.c $(CC) -c email.c
clean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
Példa bemenet
user@company.com -@-.-- where-is-the-end@ user@nodot user@twodots..com user@short-domain.x
letöltés szöveges állományként
A példa bemenethez tartozó kimenet
YES YES NO NO NO NO
letöltés szöveges állományként
|
|