#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

void flush_buffer(void);
void write_string(char string[], int n);
void clean_buf_str(char string[]);

int main(void)
{ 
  char buffer[80] = "";
  char ** pas;
  int length;
  printf("Сколько слов вы хотите ввести? ");
  scanf("%d", &length);
  flush_buffer();
  printf("Теперь введите %d слов:\n", length);
  pas = (char **) malloc(length * sizeof(char *));
  for (int i = 0; i < length; i++)
  {
    write_string(buffer, 80);
    pas[i] = (char *) malloc( (strlen(buffer) + 1) * sizeof(char *));
    strncpy(pas[i], buffer, 80);
    printf("%s\n", pas[i]);
    clean_buf_str(buffer);
  }

  for (int j = 0; j < length; j++)
    free(pas[j]);

  free(pas);

  return 0;
}


void write_string(char string[], int n)
{
  int i = 0;
  char ch;
  while ( (ch = getchar()) && i < n)
  {
    if (isspace(ch) || ispunct(ch))
      break;
    else
    {
      string[i] = ch;
      i++;
    }
  }
}

void flush_buffer(void)
{
  while (getchar() != '\n')
    continue;
}

void clean_buf_str(char string[])
{
  while (*string)
  {
    *string = '\0';
    string++;
  }
}

