Prośba o sprawdzenie programu odwracającego kolejność łańcuchów

0

Witam,

Mam za zadanie napisanie programu odwracającego kolejność łańcuchów tekstu podawanych z wejścia. Program ma zapamiętywać wprowadzane dane wykorzystując stos implementowany jako listę.

Oprócz tego mam zadane, że do przechowywania danych na liście należy wykorzystać strukturę zawartą zaraz na początku mojego kodu, a do czytania danych z wejścia należy użyć funkcji fgets.

Udało mi się zrobić coś takiego. Nie wiem, jak wyświetlić wynik. Proszę o pomoc, o wskazanie, co robię nie tak...

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
struct Element
{
        char *Text;
        struct Element *next;
};
 
struct Element *head = NULL;
 
int push(char *txt)
{
	struct Element *nowyElement = (struct Element *)malloc(sizeof(struct Element));
	if(nowyElement == NULL)return 0;
	else
	{
		nowyElement->Text = txt;
		nowyElement->next = head;
		head = nowyElement;
		return 1;
	}
} /* push() */

void clear(void)
{
        struct Element *temp;
        while( head != NULL )
        {
                temp = head;
                head = head->next;
                free(temp->Text);
                temp->Text = NULL;
                free(temp);
        }
}

int isEmpty(void)
{
	if (head == NULL)return 1;
	else return 0;
} /* isEmpty() */
 
int pop(char *txt)
{
	if (isEmpty()) return 0;
	else
	{
		struct Element *temp = head;
		txt = head->Text;
		head = head->next;
		free(temp);
		return 1;
	}
} /* pop() */

int main() 
{      
	char buf[20];
 
	printf("Wpisz dane, a ja wypisze je w odwrotnej kolejnosci.\n");
    while(fgets(buf, (int)sizeof(buf), stdin), buf[1] != '\0')
    {
		push(buf);
    };
	
	printf("A oto i wpisane dane w odwrotnej kolejnosci:\n");
    pop(buf);
	 
    clear();
    return 0;
}
1
  1. nowyElement->Text = strdup(txt);
  2. int pop(char *txt)
  3. strcpy(txt,head->Text);
  4. free(head->Text); free(temp);
0

Dziękuję za szybką odpowiedź. Jestem początkujący i staram się sam do wszystkiego dochodzić, ale nie jest to łatwe...

W związku z tym, nie wiem do końca gdzie mam umieścić te nowe elementy/co poprawić. Nie spotkałem się jeszcze do tej pory z strdup i strcpy.

1

Przeczytać w google co to jest, wstawić w odpowiednie miejsca w które będziesz wiedział po przeczytaniu co te funkcje robią.

1 użytkowników online, w tym zalogowanych: 0, gości: 1