#include <stdio.h> #include <stdlib.h> #define ERROR -1 #define OK 1 typedef struct { char *ch; int length; } heapstring; typedef struct { char item[100][80]; int last; }wordlisttype; typedef int status; status init(heapstring &t) { t.ch=(char *)malloc(sizeof(char)); return 1; } status strassign(heapstring &t,char *chars) { int i,j; char *c; init(t); if (t.ch) free(t.ch); for (i=0,c=chars; *c; ++i,++c) if (!i) { t.ch=NULL; t.length =0; } else if (!(t.ch=(char *)malloc(i*sizeof(char)))) return ERROR; else { for (j=0;j<i;j++) t.ch[j]=chars[j]; t.length =i; } return OK; } void outputstring(heapstring t) { int i; for (i=0;i<t.length ;i++) printf("%c",t.ch[i]); } status extractword(heapstring t,wordlisttype &wd) { int num=0,i=0,len=t.length ,label=-1,j=0; char p,q; p=' '; q=t.ch[i]; while (i<len) { if (p==' '&&q!=' ') num++; p=q; q=t.ch[i]; i++; } printf(" number=%d ",num); return 1; } main() { heapstring str; char *ch=" 1001 this is hhg a ff book!----- "; wordlisttype wd; strassign(str,ch); outputstring(str); extractword(str,wd); }