ファイルの文字データの統計
1つのファイル内の単語の個数、行数、および文字の個数、スペースの数を統計します.
改行を無視し、ファイルには英字とスペースと句読点しかありません.
1つの単語が2行にある場合を考慮しない.
例:ファイル名:filename.txt
hello world,i love you!
byby!
出力:
1---5---23---4
2---1---15---10
行:2---単語:6---文字:38---スペース:14
コードは次のとおりです.
1つのファイルがすべて標準的な英語で、真ん中にスペースが1つしかない場合、英語の単語の個数を簡単に統計するコードは以下の通りです.
私は愚かで、ここまで悟って、とても感慨深くて、自分と共に努力して、陋文は浅くて、見る者は大目に見ます!
改行を無視し、ファイルには英字とスペースと句読点しかありません.
1つの単語が2行にある場合を考慮しない.
例:ファイル名:filename.txt
hello world,i love you!
byby!
出力:
1---5---23---4
2---1---15---10
行:2---単語:6---文字:38---スペース:14
コードは次のとおりです.
#include <stdio.h>
#include <string.h>
int *GetNum(int *filename,int *TotalNum);
int main()
{
int ToaNum[4]={0};
char filename[30];
int *num=NULL;
printf("please input the filename:
");
scanf("%s",filename);
num=GetNum(filename,ToaNum);
printf(" :%d--- :%d--- :%d--- :%d
",num[0],num[1],num[2],num[3]);
return 0;
}
int *GetNum(int *filename,int *TotalNum)
{
FILE *fp; // ;
char buffer[1002];// ;
int LEN; // ;
int i ;
int islastblank=0;// ;
int WordNum=0;
int CharNum=0;
int blank=0;
//1. ;
if((fp=fopen(filename,"rb"))==NULL)
{
printf("fopen error!");
return NULL;
}
//2. ;
while(fgets(buffer,1002,fp)!=NULL)
{
LEN=strlen(buffer);
for(i=0;i<LEN;i++)
{
char c=buffer[i];
//3. Tab ;
if(c == '\t' || c==' ')
{// ,WordNum++;
blank++;
if(i==0)
{// , ;
islastblank=1;
}
else
{
!islastblank && WordNum++;
islastblank=1;
}
}
if(c!='\r' && c!='
')//4. ;
{// ,CharNum++;
CharNum++;
if(c == '\t' || c==' ')
islastblank=1;
else
islastblank=0;
}
}
!islastblank && WordNum++;
islastblank=0;
TotalNum[0]++;
TotalNum[1]+=WordNum;
TotalNum[2]+=CharNum;
TotalNum[3]+=blank;
printf("%d---%d---%d---%d
",TotalNum[0],WordNum,CharNum,blank);
WordNum=0;
CharNum=0;
blank=0;
}
return TotalNum;
}
1つのファイルがすべて標準的な英語で、真ん中にスペースが1つしかない場合、英語の単語の個数を簡単に統計するコードは以下の通りです.
#include <stdio.h>
#include <string.h>
int main()
{
char str[50];
int LEN,i;
int count=0;
gets(str);
puts(str);
LEN=strlen(str);
for(i=0;i<LEN;i++)
{
while(str[i]!=' ' && str[i]!= '\0')
i++;
if(str[i]==' ')
count++;
}
count++;
printf("%d
",count);
return 0;
}
私は愚かで、ここまで悟って、とても感慨深くて、自分と共に努力して、陋文は浅くて、見る者は大目に見ます!