Pomoc w dokonczeniu projektu, jezyk C

0

Witam, dostałem taki projekt do zrobienia : "Dany jest tekst (obojetnie jaki) . Zakladając, że znakiem oddzielającym słowa jest jeden lub wiele znaków odstepu, podziel ten tekst na slowa. "

Napisany mam program który zlicza słowa biorąc pod uwage spacje lub kilka spacji.
Muszę jeszcze dodac znak tabulacji oraz aby program wyswietlał podanie słowa w kolumnach.
Jest w stanie ktoś pomóc?

A oto tekst:

 
//Liczba s��w w wielu liniach tekstu (3) - tablice 2-indeksowe w argumentach
#pragma warning (disable: 4996)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 256
#define MAX_LINES 200
FILE *fd;
int ile_slow(char *),licz_slowa(char **),licz_slowa_1(char **);
int main()
{
  /* Ile slow w ielu liniach tekstu */
  char *d[MAX_LINES],bufor[MAX_LINE];
  int len,i,l;
  if(!(fd=fopen("Dane","r")))
  {
    printf("Blad otwarcia zbioru\n");
    exit(2);
  }
  i=0;
  l=0;
  while(i<MAX_LINES && fgets(bufor,MAX_LINE,fd))
  {
    len=strlen(bufor);
    bufor[len-1]='\0';
    if(!(d[i]=(char*)malloc((unsigned)len)))
    {
      printf("Brak pamieci\n");
      exit(3);
    }
    strcpy(d[i],bufor);
    i++;
  }
  d[i] = (char *)0;
  l= licz_slowa_1(d);
  printf("%d\n",l);

  l= licz_slowa(d);
  printf("%d\n",l);
 system("pause");

  /* Tekst w pamieci, tablica d - wskazniki do linii tekstu */
}

/* Tu funkcja ile_slow */

int ile_slow(char *te)
{
  char p,b=' ';
  int l=0;
  while( p=b, b = *te++)
    if( b != ' ' &&  p == ' ') l++ ;
  return(l);
}

int licz_slowa_1(char *te[])
{
  int i,l=0;
  i=0;
  while(te[i] != (char *)0)
  {
    l += ile_slow(te[i]);
    i++;
  }
  return l;
}

int licz_slowa(char **te)
{
  int l=0;
  while(*te)
    l += ile_slow(*te++);
  return l;
}
2
  1. Zapoznaj się z inkrementacją, bo jej nie rozumiesz: http://4programmers.net/Forum/1101404
  2. Nie używaj innego niż angielskie nazewnictwa: http://4programmers.net/Forum/1208091
  3. Nie używaj zmiennych globalnych o ile nie jest to absolutnie koniecznie (nigdy nie jest).
  4. Zapoznaj się z funkcją isspace()
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>

void myassert(int bad,const char *msg) { if(bad) exit(fprintf(stderr,"%s\n",msg)); }
int main()
  {
   FILE *fd;
   int ch,sp='\n';
   myassert((fd=fopen("smiec.c","r"))==NULL,"Blad otwarcia zbioru");
   while((ch=fgetc(fd))!=EOF) if(!isspace(ch)) putchar(sp=ch); else if(!isspace(sp)) putchar(sp='\n');
   fclose(fd);
   return 0;
  }

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