Programozó versenyek

Magas szintű programozási nyelvek 1, 2014. április 8., K18 ZH

2014. április 8. 18:05 – 2014. április 8. 19:50

Lakcímek

Írjon függvényt, amely a paramétereként megkapott tetszőleges hosszúságú sztringről eldönti, hogy az szabályos lakcím-e! Ha az, akkor a függvény igaz értéket, egyébként hamisat adjon vissza! Egy sztringet szabályos lakcímnek tekintünk, ha

  1. legalább 9 karakter hosszúságú,
  2. legalább két szóköz karaktert tartalmaz,
  3. az első 4 karaktere decimális számjegy,
  4. az ötödik karaktere szóköz (ez az első szóköz benne),
  5. az ötödik karaktere után pontosan egy darab vessző karakter szerepel benne valahol,
  6. a vessző karaktert követi a sztring második szóköz karaktere,
  7. az első szóköztől a vesszőig legalább egy további karaktert tartalmaz, és
  8. a második szóköz karaktert követik még további nem szóköz karakterek.

A függvény specifikációja

int is_home_address( char * );

Megjegyzés

A függvényt helyezze az address.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

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.   char line[ 50 ];
  6.   int is_home_address( char * );
  7.   while ( gets( line ) != NULL )
  8.     if ( is_home_address( line ) )
  9.       puts( "YES" );
  10.     else
  11.       puts( "NO" );
  12.   return EXIT_SUCCESS;
  13. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o address.o
  3. TARGETS = main 
  4. all: $(TARGETS)
  5. main: main.o address.o
  6. $(CC) main.o address.o -o main
  7. main.o: main.c
  8. $(CC) -c main.c
  9. address.o: address.c
  10. $(CC) -c address.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. 4028 Debrecen, Kassai út 26.
  2. 0000 x, y
  3. 123 Aprajafalva, Törpapa sugárút 1.
  4. 9999 Bivalyröcsöge,Nincsisilyen utca 10.
  5. 9999,Bivalyröcsöge, Nincsisilyen utca 10.
  6. 9999 Bivalyröcsöge,
  7. 9999 , Nincsisilyen utca 10.
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. YES
  2. YES
  3. NO
  4. NO
  5. NO
  6. NO
  7. NO
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.