programming-examples/c++/Others/Frequency words,characters.cpp
2019-11-15 12:59:38 +01:00

159 lines
3.2 KiB
C++

Frequency words,characters
// ISO/ANSI C program
// 0 Errors and 0 Warnings on turboC 3.0 compilers
// borland 3.0
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
int ch,i,j,k,l,fc[50][2],flag;
char line[50],fw[50][50];
clrscr();
do
{
printf("\n<1> Input a line");
printf("\n<2> Number of characters");
printf("\n<3> Number of words");
printf("\n<4> Number of vowals");
printf("\n<5> Frequency of characters");
printf("\n<6> Frequency of words");
printf("\n<7> Exit\n");
do
{
printf("\n enter your choice ");
scanf("%d",&ch);
}while(ch>7 || ch<1);
switch (ch)
{
case 1: //input a line
printf("\n Enter a line ");
scanf("\n%[^\n]",line);
break;
case 2: //number of characters
j=0;
for(i=0;i<strlen(line);++i)
{
if(line[i]>64 && line[i]<93)
++j;
else
if(line[i]>96 && line[i]<123)
++j;
}
printf("total number of characters are %d",j);
break;
case 3: //number of words
j=0;
for(i=0;i<strlen(line);++i)
{
if(line[i]==' ' || line[i]=='\t')
continue;
else
{
for(k=i;k<strlen(line);++k)
{
if(line[k]==' ' || line[k]=='\t')
break;
else
++i;
}
}
++j;
}
printf("\n total number of words are %d",j);
break;
case 4: //number of vowels
j=0;
for(i=0;i<strlen(line);++i)
{
if(line[i]=='a' || line[i]=='e' || line[i]=='i' || line[i]=='o' || line[i]=='u')
++j;
else
if(line[i]=='A' || line[i]=='E' || line[i]=='I' || line[i]=='O' || line[i]=='U')
++j;
}
printf("total number of vowels are %d",j);
break;
case 5: //frequency of characters
for(i=0;i<strlen(line);++i)
{
fc[i][1]=0;
flag=0;
for(j=0;j<strlen(line);++j)
{
if(line[i]==fc[j][0])
{
fc[j][0]=line[i];
++fc[j][1];
flag=1;
break;
}
}
if(flag==0)
fc[i][0]=line[i],fc[i][1]=1;
}
printf("\n Frequency of each characters");
for(i=0;i<strlen(line);++i)
if(fc[i][1]!=0)
printf("\n%c %d",fc[i][0],fc[i][1]);
break;
case 6: //frequency of words
j=0;
for(i=0;i<strlen(line);++i)
{
if(line[i]==' ' || line[i]=='\t')
continue;
else
{
l=0;
for(k=i;k<strlen(line);++k)
{
if(line[k]==' ' || line[k]=='\t')
break;
else
{
fw[j][l]=line[k],fw[j][++l]='\0';
++i;
}
}
}
++j;
}
for(i=0;i<j;++i)
{
fc[0][0]=0;
for(k=i;k<j;++k)
{
flag=1;
for(l=0;l<j;++l)
if(fw[i][l]!=fw[k][l])
flag=0;
if(flag==1)
{
++fc[0][0];
if(fc[0][0]>1)
fw[k][0]='\0';
}
}
if(fc[0][0]>0)
{
flag=0;
do
{
printf("%c",fw[i][flag]);
} while(fw[i][flag++]!='\0');
if(fw[i][0]!='\0')
printf("%d\n",fc[0][0]);
}
fc[0][0]=0;
}
break;
}
}while(ch!=7);
printf("\n\n i will wait for your mails ");
getch();
return ;
}