Programozó versenyek

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

2017. május 29. 13:05 – 2017. május 29. 16:05

Szóközcsoportok

Í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, amelyekben van legalább két szóköz egymás mellett! Az eljárás az egyes sztringeket úgy írja ki az állományba, hogy a bennük szereplő legalább kételemű szóközcsoportokat egy-egy csillag karakterrel helyettesíti, de az eredeti sztring ne változzon!

Az eljárás specifikációja

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

Megjegyzés

Az eljárást helyezze a csillag.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 csillag(char *, char *[], int);
  4. int main()
  5. {
  6.   char *t[] = {"Ez nem kell.", "Ez  viszont       kell.", "Ebben  is  lesz csillag."};
  7.   FILE *f;
  8.   int c;
  9.   csillag("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 csillag.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*viszont*kell.
  2. Ebben*is*lesz csillag.
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.