Szólista
Adott a következő fejlécállomány:
myheader.h
#ifndef _MYHEADER_H
#define _MYHEADER_H 1
char **foo(const char *);
#endif /* myheader.h */
letöltés szöveges állományként
Írja meg a myheader.h
állományban deklarált foo()
függvényt, amely
paraméterként megkap egy sztringet, amelyben a betűcsoportokat több-kevesebb szóközből álló
karaktersorozatok határolják! A függvény hozzon létre egy n + 1 elemből
álló tömböt, ahol n az összefüggő betűcsoportok száma a sztringben, és töltse fel a
tömbelemeket úgy, hogy azok az egyes betűcsoportok első betűjét címezzék! Az utolsó tömbelem
értéke legyen NULL! Ügyeljen rá, hogy a paraméterként megadott sztring ne módosuljon!
Megjegyzés
A függvényt helyezze a foo.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
#include <stdio.h>
#include <stdlib.h>
#include "myheader.h"
int main()
{
char **res = foo(" Ez itt egy mondat. ");
int i;
for (i = 0; res[i] != NULL; ++i)
printf("*%s*\n", res[i]);
free(res);
return EXIT_SUCCESS;
}
letöltés szöveges állományként
Makefile
SRCS = main.c foo.c
OBJS = $(SRCS:%.c=%.o)
TARGETS = main
.PHONY: clean
all: $(TARGETS)
main: $(OBJS)
$(CC) $(OBJS) -o main
%.o: %.c
$(CC) -Wall -c $< -o $@
clean:
rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
A példa tesztprogram kimenete
*Ez itt egy mondat. *
*itt egy mondat. *
*egy mondat. *
*mondat. *
letöltés szöveges állományként