Programozó versenyek

Levelező Magas szintű programozási nyelvek 1 beugró, 2017. május 26.

2017. május 26. 13:00 – 2017. május 26. 16:00

Mondatok

Írjon eljárást, amely paraméterként megkap egy állománynevet, egy sztringeket tartalmazó egydimenziós tömb kezdőcímét, valamint a tömb elemszámát! Az eljárás írja ki a megadott nevű szöveges állományba soronként, a tömbbeli előfordulásuk sorrendjében a tömb azon elemeit, amelyek mondatzáró írásjellel (pont, kérdőjel, felkiáltójel) végződnek! Az eljárás az egyes sztringeket úgy írja ki az állományba, hogy a bennük szereplő angol kisbetűket alakítsa nagybetűssé, de az eredeti sztring ne változzon!

Az eljárás specifikációja

void nagybetu(char *, char *[], int);

Megjegyzés

Az eljárást helyezze a nagybetu.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását az alábbi állományok 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. void nagybetu(char *, char *[], int);
  4. int main()
  5. {
  6.   char *t[] = {"valami", "Ez egy mondat.", "Kell ez?"};
  7.   FILE *f;
  8.   int c;
  9.   nagybetu("kimenet.txt", t, 3);
  10.   f = fopen("kimenet.txt", "r");
  11.   while ((c = fgetc(f)) != EOF)
  12.     putchar(c);
  13.   fclose(f);
  14.   return EXIT_SUCCESS;
  15. }
letöltés szöveges állományként

Makefile

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

A példa tesztprogram kimenete

  1. EZ EGY MONDAT.
  2. KELL EZ?
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.