단어 받아서 세는 프로그램인데 ㅜㅜ.. 모르겠어요..

kknd345의 이미지

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


char word[200][30];
int count_word[200]={0};
int word_number=0;


int select_word( FILE* open )
{
	char temp;
	int i=0;
	
	
	temp= getc(open);
	if( temp == EOF )
		return 0;

	while( temp  != ' ' && temp != '\n' )
	{
		if( temp != '.' && temp != ',' )
		{
			word[word_number][i]=temp;
			i++;
		}
		temp= getc(open);
	
		if( temp == EOF )
			return 0;
	}


	for( i=0; i< word_number; i++)
	{
		if( strcmp( word[word_number],word[i] ) == 0 )
		{
			count_word[i]++;
			return 1;
		}
	}
	word_number++;
	return 1;
}


void main(void)
{
	FILE* open;
	

	open=fopen("week11_44.txt","r");
	

	while( 1 )
	{
		if( select_word( open ) == 0 )
			break;
	}
	printf("%s :",word[0]);
	printf("%d\n",count_word[0]);
	
	printf("%s :",word[1]);
	printf("%d\n",count_word[1]);
	
	printf("%s :",word[2]);
	printf("%d\n",count_word[2]);
	
	printf("%s :",word[3]);
	printf("%d\n",count_word[3]);



}

단어는 중복없이 정확하게 다 받아 오는것 같은데...
밑에 코드가 잘못 되어서 단어가 몇개 있는지 모르겠네요.

띄우고 개행한것은 카운트에 들어가는데
바로 개행한것은 카운트에 안 들어가요.

	for( i=0; i< word_number; i++)
	{
		if( strcmp( word[word_number],word[i] ) == 0 )
		{
			count_word[i]++;
			return 1;
		}
	}
	word_number++;
	return 1;

도와주세요
다른 방법도 상관없어요.

kknd345의 이미지

예제파일

is is is is is 
nike nike nike nike
kknd kknd kknd kknd
nsodium nsodium 

출력이
5
3
3
1
원래는
5
4
4
2 되어야 하는데요 ㅜㅜ..

문제는 정확하게
텍스트 파일에서 단어를 파싱하여 각 단어가 몇 번씩 나왔는지 세는 프로그램을 작성하라. 목록이 다 만들어지면 정렬한 후 결과를 출력한다.

1%의 가능성이면 충분하다!
최선을 다하자!

cdpark의 이미지

처음으로 nike가 나왔을 때, 그 nike가 is와 다르다는 걸 판단하고는 그냥 nike를 버리네요. :(