|
分類:[C/C++]
以下は、txtの中の単語をカウントするものです。しかし、実行されても何も出ません。
条件は以下の通りです。
1,出現回数は10回
2,スペースで区切られた文字列を数える
カンマ、ピリオドなどは含まない。
文字の中のは含める。' や -
3,大文字や小文字は同じものは同じ
4,カウント対象のファイル名はコマンドライン引数で指定されない場合、実行用始後に入力するようにする。
#include<stdio.h>
#include<string.h>
#define MAX 1000
#define LEN 100
#define NUM -1
int main(int argc, char *argv[])
{
FILE *fp;
char h[MAX][LEN]={'\0'};
char buf[LEN];
int count[MAX]={0};
int max=0;
int num,i,flg;
if (argc != 2)
{
printf("コマンド名に続きファイル名を入れてください\n");
return -1;
}
fp=fopen(argv[1],"r");
while(buf=fgetc(fp))!=EOF)
{
i=0;
}
while(buf[i])
{
if(buf[i]>='A' && buf[i]<='Z')
{
buf[i] -= 'A' - 'a';
}
if(buf[i]==','||buf[i]=='.'||buf[i]=='!'||buf[i]=='?')
{
buf[i]='\0';
}
i++;
}
num = NUM;
while(flg = 0)
{
for(i=0;i<max;i++)
{
if(strcmp(buf,h[i])==0)
{
num=i;
flg = 1;
}
if(num==NUM)
{
strcpy(h[max],buf);
count[max]++;
max++;
}
else
{
count[num]++;
}
}
}
for(i=0;i<10;i++)
{
printf("%d:\t%-12s:\t%d\n",i+1,h[i],count[i]);
}
return 0;
}
こちらが、1つのFileの内容です。
Down the Rabbit-Hole
Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversation?'
So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.
|