C-napisy wskazówki do zadania

0

Cześć,

mam problem z jednym zadaniem, nie wiem za co ma się zabrać. Czy ktoś z Was może mi jakoś pomóc, podrzucić jakieś rozwiązanie czy stronkę na której jest podobny program, którym bym mogła się wesprzeć?

Napisać i przetestować program zawierający m. in. funkcję char** read(int n) wczytawszy z klawiatury n (podane przez użytkownika) wierszy znaków. Każdy wiersz (zakończony naciśnięciem ENTER) może zawierać dowolną ilość znaków. Wynikiem tej funkcji jest tablica dynamiczna wczytanych wierszy.

Z góry dziękuję za pomoc

1

A za co niby "masz się tu zabrać?"

  1. Alokujesz sobie tablicę na char* o rozmiarze n
char** wyniki = new char*[n];
  1. Robisz pętlę po n
for (int i=0;i<n;i++){

}
  1. Alokujesz sobie bufor na pewną ilość znaków (możesz po 1, możesz alokować od razu wiecej)
  2. Robisz pętlę do..while
  3. Czytasz po jednym znaku z wejścia i jeśli to jest znak nowej linii '\n' to przerywasz pętlę, a jeśli nie to dopisujesz ten znak do swojego bufora. Jeśli bufor jest pełny to alokujesz większy i przepisujesz do niego dane.
  4. Po wyjściu z pętli while zapisujesz aktualny bufor do swojej tablicy wyników
wyniki[i] = bufor;
  1. Po wyjściu z pętli for zwracasz tablicę wynikową
return wyniki;
1

Ja bym zrobiła jedną pętlę i po prostu użyła

scanf("%ms",&array[i]);

, ale to jest rozszerzenie GNU.

0

Dzięki za pomoc :) udało mi się napisać i zaliczyć zadanie :)

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