Programozó versenyek

Magas szintű programozási nyelvek 1, 2014. május 27., K14 ZH

2014. május 27. 14:05 – 2014. május 27. 19:20

Konkatenáció

Írjon függvényt, amely paraméterként megkapja egy sztringeket tartalmazó kétdimenziós tömb kezdőcímét, valamint sorainak és oszlopainak számát! A függvény az eredeti tömb módosítása nélkül hozzon létre egy új, sztringeket (karaktermutatókat) tartalmazó egydimenziós tömböt (vektort), amelynek elemeit az eredeti tömb soraiban található sztringek konkatenálásával kapjuk meg, majd adja vissza e tömb kezdőcímét!

A függvény specifikációja

char **concat( char *[], int, int );

Megjegyzés

A függvényt helyezze a concat.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 három á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!

myheader.h

  1. #ifndef _MYHEADER_H
  2. #define _MYHEADER_H 1
  3. char **concat( char *[], int, int );
  4. #endif /* myheader.h */
letöltés szöveges állományként

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "myheader.h"
  4. #define N 3
  5. #define M 4
  6. int main()
  7. {
  8.   char *t[ N ][ M ] =
  9.     { { "Cser",   "hat",  "szent", "ivan" },
  10.       { "Boldog", "ko",   "var",   "alja" },
  11.       { "Hod",    "mezo", "vasar", "hely" } };
  12.   int i, j;
  13.   char **p;
  14.   p = concat( &t[ 0 ][ 0 ], N, M );
  15.   for ( i = 0; i < N; ++i )
  16.   {
  17.     printf( "*%s*\n", p[ i ] );
  18.     free( p[ i ] );
  19.   }
  20.   free( p );
  21.   return EXIT_SUCCESS;
  22. }
letöltés szöveges állományként

Makefile

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

A fenti program kimenete

  1. *Cserhatszentivan*
  2. *Boldogkovaralja*
  3. *Hodmezovasarhely*
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.