Write a program to print distinct words in an input
along with their count in input in decreasing order of their
count..



Write a program to print distinct words in an input along with their count in input in decreasing o..

Answer / gururaj l j

Solution

/* This Program counts the distinct words in the input
string preceded each word by its count */


#include <stdio.h>
#include <string.h>

void DistinctWords(char s[ ]);


void main()
{
char s[100];

printf("Enter the String ");
gets(s);

if(strlen(s) <= 0)
printf("Please provide the input
string\n");
else
DistinctWords(s);
}

/* Purpose: This function counts the distinct words in the
input string preceded each word by its count
Input : String
Output : distinct words with its count
*/

void DistinctWords(char s[])
{
char words[50][50];
char distinct[50];
int i, j, l, k = 0, start, end, f = 1, m = 0, n =
0;
int count;
int countindex[20],cindex = 0;


for(l = 0,i = 0; s[i] != ' '; i++, l++)
words[k][i] = s[i];

words[k][i] = '\0';
k++;
start = i+1;


for(i = i+1; s[i]; i++)
{
if(s[i] == ' ')
{
end = i-1;
f = i+1;

for(j = 0, l = start; l <= end;
l++, j++)
words[k][j] = s[l];


words[k][j] = '\0';

k++;
start = i+1;
}
}


for(l = f, i = 0; s[l]; i++, l++)
words[k][i] = s[l];

words[k][i] = '\0';


for(i = 0;i <= k; i++)
{
count = 0;

for(j = i; j <= k; j++)
{
if((stricmp(words[i], words[j])) == 0)

count++;
}

f = 1;

for(j = 0; j < i; j++)
{
if(strcmp(words[i], words[j]) == 0)
{
f = 0;
break;
}
}


if(f == 1)
printf("\n\t%s Occur %d Times\n", words[i],
count);
}
}

Is This Answer Correct ?    18 Yes 7 No

Post New Answer

More C Interview Questions

How do we open a binary file in Read/Write mode in C?

0 Answers   Alter,


write the function int countchtr(char string[],int ch);which returns the number of timesthe character ch appears in the string. for example the call countchtr("she lives in Newyork",'e') would return 3.

6 Answers  


Why header files are used?

0 Answers  


#include<conio.h> #include<stdio.h> void main() { int i; if(1,0,2,3) { printf("if"); } else { printf("else"); } getch(); } Can any body tell the answer of this question with explanation?

3 Answers   Huawei,


Difference between MAC vs. IP Addressing

0 Answers  






What is logical error?

0 Answers  


WHAT IS HIGH LEVEL LANGUAGE?

2 Answers  


main() { int x=20,y=35; x = y++ + x++; y = ++y + ++x; printf("%d %d\n",x,y); }

27 Answers   Advent Global Solutions, CitiGroup, Valeo Lighting Systems India Private Limited, Vishal Transformers, Wipro, Zencer,


while loop contains parts a) initialisation, evalution of an expression,increment /decrement b) initialisation, increment/decrement c) condition evalution d) none of the above

0 Answers  


How can I write a function analogous to scanf?

0 Answers  


Write a small C program to determine whether a machine's type is little-endian or big-endian.

5 Answers   nvidia,


what is difference between ++(*p) and (*p)++

17 Answers   Accenture, HCL, IBM,


Categories