85 lines
1.3 KiB
C++
85 lines
1.3 KiB
C++
Word Frequency
|
|
|
|
#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;
|
|
|
|
|
|
}
|