#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BLANK ''
#define NEW_LINE '\n'
#define TAB '\t'
#define WORD_MAX 1000
void main()
{
FILE *fp;
char fileName[30];
char *words[WORD_MAX], tWord[30];
int wordNum[WORD_MAX], nw, nc, c, k;
enum {OUT, IN} wordSW;
printf("입력 파일명을 입력하세요:");
gets(fileName);
if((fp=fopen(fileName, "r"))== NULL) //파일을 오픈하지 못할 경우
{
printf("%s를 열수 없으므로 키보드(stdin)에서 문장을 입력하세요. \n", fileName);
fp=stdin; //파일 포인터를 표준 입력 장치 stdin으로 정한다
}
for(k=0; k<WORD_MAX; k++) wordNum[k] = 0; //단어 수 배열을 0으로 초기화
nw=nc=0; //현재 워드 수와 문자 수 0
do
{
c=getc(fp); //파일 끝 문자가 읽히면 입력 문자 c가 eof(-1)이 된다
if (c==BLANK || c==NEW_LINE || c==TAB || c==EOF)
{
if(nc>0)
{
tWord[nc]='\0';
wordSW=OUT;
for(k=0; k<nw; k++)
if(strcmp(words[k], tWord)==0)
{
wordSW=IN;
wordNum[k]++; break;
}
if(wordSW==OUT)
{
words[nw]=(char *)malloc(nc); strcpy(words[nw], tWord);
wordNum[nw]=1;
nw++;
}
nc=0;
}
}
else
tWord[nc++] = c;
}
while (c != EOF);
fclose(fp);
for(k=0; k<nw; k++)
printf("%30s[%3d]:%3d\n", words[k],
질문이 뭔데