101
{ USER }
posts: 55
last: 09-Apr-2008
TITLE: Word Frequency Counting Algorithm
DESCRIPTION: Word Frequency Counter
Submitted: 09-Apr-2008 10:43:04 ( 38w 5d 18h ago ) Language: C++ (*.cpp *.h)
Views: 108 Lines of Code: 90 LINES
Rating:
rate: star1
star2
star3
star4
star5
dstar1
dstar2
dstar3
dstar4
dstar5  ( rated! )
  { 0.00 / 5 }
Difficulty: Intermediate
Bookmark
/* Author: 101
   Date: 09-04-2008
   Filename: 
   Description: Word Frequency
   History: 
*/


#include <stdio.h>

#define SIZE 80
#define LEN  80


int strword(char[],char[][]);
int strword_p(char*,char**);


void main(){
	char* s;
	char** w;
	char ch;

	do{
	   clrscr();
	   gotoxy(10,1);
	   printf("Enter a string :");
	   gets(s);
	   gotoxy(10,2);
	   printf("\nNumber of words :%d",strword_p(s,w));
	   gotoxy(10,24);
	   printf(" Continue(y/n)?");
	   ch=getch();

	} while (ch=='y' || ch=='Y');
}

int strword_p(char *s,char **w){
    int is_space=0,
	i=0,
	word_counter=0,
	j=0,
	is_printed=0,
	frequency=0;

	while (*(s+i)!='\0'){
		if (*(s+i)==' ' ||
		    *(s+i)==',' ||
		    *(s+i)=='.' ||
		    *(s+i)==':'){

		     if (is_space==0){
			 *(*(w+word_counter)+j)='\0';
			 word_counter++;
			 is_space=1;
			 j=0;
		     }
		}
		else{
		   *(*(w+word_counter)+j)=*(s+i);
		   j++;
		   is_space=0;
		}
		i++;
	}
     if (is_space==0){
	 *(*(w+word_counter)+j)='\0';
	word_counter++;
     }

     for(j=0;j<word_counter;j++){
	frequency=0;
	is_printed=0;
	for(i=0;i<word_counter;i++){
	    if (strcmp(w[i],w[j])==0){
		 frequency++;
		 if (j<i)
			is_printed=1;
	    }
	}
	if (!is_printed)
		printf("\n Word %d : %s ,frequency->%d",j+1,w[j],frequency);
     }
     printf("\n");


     return word_counter;


}