// CountTimeInArray.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
void CountTimeInArray(char *chArray);
void CountTimeInArrayFromFile(char *chFileName);
//求数字在排序数组中出现的次数
//从一串字符中找出0,1,2...9出现的次数
//从一个文件中读出字符,统计0,1,2...9出现的次数
int _tmain(int argc, _TCHAR* argv[])
{
char ch[1024] = "abc123455432100009";
CountTimeInArray(ch);
CountTimeInArrayFromFile("d:\\test.txt");
system("pause");
return 0;
}
void CountTimeInArray( char *chArray )
{
int nCount[10]={0,0,0,0,0,0,0,0,0,0};//0,1,2...9出现的次数 初始化为0
int i = 0;
while (chArray[i])
{
if ((chArray[i]>='0')&&(chArray[i]<='9'))
{
int nTemp = chArray[i]-'0';
++nCount[nTemp];
}
++i;
}
for (i=0;i<10;++i)
{
cout<<i<<" count:"<<nCount[i]<<endl;
}
cout<<endl;
}
void CountTimeInArrayFromFile( char *chFileName )
{
FILE *fp;
errno_t nErr;
nErr = fopen_s(&fp,chFileName,"r+");
if (nErr!=0)
{
cout<<"Open file error."<<endl;
return;
}
char chArray[1024];
fseek(fp,0,SEEK_END);//文件指针移动文件结尾
int nSize = ftell(fp);
fseek(fp,0,0);//文件指针移动文件头部
fread(chArray,sizeof(char),nSize,fp);
if (fp)
{
fclose(fp);
}
int nCount[10]={0,0,0,0,0,0,0,0,0,0};//0,1,2...9出现的次数 初始化为0
int i = 0;
while (chArray[i])
{
if ((chArray[i]>='0')&&(chArray[i]<='9'))
{
int nTemp = chArray[i]-'0';
++nCount[nTemp];
}
++i;
}
for (i=0;i<10;++i)
{
cout<<i<<" count:"<<nCount[i]<<endl;
}
cout<<endl;
}