Click here to Skip to main content
14,355,411 members
Rate this:
Please Sign up or sign in to vote.
See more:
I dont know if this a right place to ask but anyway here you go:

I am trying count all occurrences word are that are in the file but i dont know how to do it but I can only do in like user have input in not from a file;

EX:

in file they have

the 50
is 20
on 5

and so on. but i couldnt get it to work.
I hope someone could help me out.

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

void main()
{
	int i = 0, j = 0, count = 0;
	char str1[100], str2[20], str3[20];
	//clrscr();
	printf("Enter the text: ");
	gets(str1);

	printf("Enter word to count: ");
	gets(str2);

	while (str1[i] != '\0')
	{
		while (str1[i] != ' '&&str1[i] != '\0')	//copying the word from the text to a new string
			str3[j++] = str1[i++];

		str3[j] = '\0';	//assigning null character at the end of string
		j = 0;

		if ((_strcmpi(str2, str3)) == 0)	//comparing the given word with the copied word
			count++;

		if (str1[i] == '\0')
			break;
		else
			i++;
	}

	printf("No. of words are %d", count);
	_getch();
}
Posted
Updated 23-Sep-14 22:20pm
v2
Comments
Member 11105393 24-Sep-14 3:08am
   
first on all i am new to C as you can see i ask user for input but thing is i want to get information file not from user;

like in file it store

50 the
20 so
10 on

it will print

50 the
20 so
10 on

and so on

code is working fine! I compile it and it run

1 solution

Rate this:
Please Sign up or sign in to vote.

Solution 1

It is not difficult: in a loop read from the file a word at time (you may use fscanf[^] for the purpose ) and check if it matches the user input.
   
Comments
Member 11105393 24-Sep-14 3:48am
   
I dont want input for user but i want it from files
CPallini 24-Sep-14 5:16am
   
Do you want to count the occurrences of every word of the file?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100