Write a program to print distinct words in an input
along with their count in input in decreasing order of their
count..
Answer Posted / 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 View All Answers
What is a void * in c?
How does free() know explain how much memory to release?
Why does notstrcat(string, "!");Work?
5 Write an Algorithm to find the maximum and minimum items in a set of ānā element.
What is a lookup table in c?
What is array of structure in c?
How does pointer work in c?
What is pragma c?
What does == mean in texting?
What is a lvalue
Which node is more powerful and can handle local information processing or graphics processing?
which of the following shows the correct hierarchy of arithmetic operations in C a) (), **, * or/,+ or - b) (),**,*,/,+,- c) (),**,/,*,+,- d) (),/ or *,- or +
What are nested functions in c?
Tell me the use of bit field in c language?
What does malloc () calloc () realloc () free () do?