This is code for finding the numbers of characters in a string using Finite
state automata in efficient and professional manner.
// this is wordcount.h
int WordCount(char ar[]);//# of words
int IsSpace(char ch);//=1 if ch=space
int IsLetter(char ch);//=1 if ch=letter else=0
//this wordcount.c
#include<stdio.h>
#include"WordCount.h"
#define NOTINWORD 1
#define INWORD 2
static int IsSpace(char ch);
static int IsLetter(char ch);
static int IsSpace(char ch)
{
if(ch==' '||ch=='\t'||ch=='\n')
{return 1;}
return 0;}
static int IsLetter(char ch)
{if(IsSpace(ch)==1){return 0;}
return 1;}
int WordCount(char ar[])
{
int state; int i; int count;
state=NOTINWORD; count=0;
for(i=0;ar[i]!=0;i++)
{if(state==NOTINWORD && IsSpace(ar[i])==1)
{state=NOTINWORD;}
else if(state==NOTINWORD && IsLetter(ar[i])==1)
{count++; state=INWORD;}
else if(state==INWORD && IsLetter(ar[i])==1)
{count++;state=INWORD;}
else if(state==INWORD && IsSpace(ar[i])==1)
{state=NOTINWORD;}}
return count;}