灝忎箵緇冮錛?br>
int main(int argc, char* argv[])
{
using namespace std;
ifstream infile("c:\\a.txt",ios::binary );
if(!infile)
{
cout<<"Can not open sourse file!"<<endl;
return 0;
}
//ofstream outfile("out.txt");
//if(!outfile)
//{
// cout<<"Can not open destination file!"<<endl;
//}
int nLength = 0;
char * pBuffer;
// get length of file:
infile.seekg (0, ios::end);
nLength = infile.tellg();
infile.seekg (0, ios::beg);
//read the file to the buffer
pBuffer = new char[nLength];
memset(pBuffer, 0, nLength);
infile.read(pBuffer,nLength);
infile.close();
//copy the buffer to the string s
string s = pBuffer;
delete[] pBuffer;
pBuffer = NULL;
string temp;
vector<string> vecSubstr;
vector<int> vecCount;
int pre=0,next=0;
while(next<nLength)
{
pre=next;
//find the word
while((next<nLength)&&isalnum(s[next]))
{
next++;
}
if(pre!=next)
{
//璁$畻褰撳墠鐨勫崟璇嶄釜鏁?/span>
temp = s.substr(pre,next-pre);
cout<<temp<<endl;
//std::vector<std::string>::iterator iter = std::find(vecSubstr.begin(), vecSubstr.end(), temp);
//if (vecSubstr.end() != iter)
//{
// std::cout<<temp<<std::endl;
//}else
//{
// vecSubstr.push_back(temp);
//}
unsigned int iPosition=0;
while(iPosition<vecSubstr.size())
{
if(vecSubstr[iPosition].compare(temp)==0)
break;
iPosition++;
}
if (iPosition==vecSubstr.size())
{
vecSubstr.push_back(temp);
vecCount.push_back(1);
}
else
{
vecCount[iPosition]++;
}
}
next++;
}
for (int j=0;j<vecSubstr.size();j++)
{
cout<<vecSubstr[j]<<endl<<vecCount[j]<<endl;
}
//for(int i=0;i<substr.size();i++)
//{
// cout<<substr[i]<<endl;
// cout<<count[i]<<endl;
//}
//delete[] pBuffer;
//pBuffer = NULL;
system("pause");
return 0;
}
C++浠g爜錛?br>
int main(int argc, char* argv[])
{
// 鏂囦歡璺緞
char* szPath = "C:\\text.txt";
std::ifstream fin(szPath);
if (!fin)
{
std::cout<<"Can not open file"<<std::endl;
return -1;
}
// 閫氬父鎴戜滑榪欐牱璇誨彇涓涓枃鏈枃浠剁殑鍏ㄦ枃
std::string strText = std::string(std::istreambuf_iterator<char>(fin), std::istreambuf_iterator<char>());
typedef std::map<std::string, int> CountMap;
CountMap counter;
int nLength = strText.length();
int nLeft = 0;
int nRight = -1;
while(nRight<nLength)
{
nLeft = nRight+1;
// 鎵懼埌絎竴涓槸瀛楁瘝鐨勪綅緗?/span>
while (nLeft<nLength && !isalnum(strText[nLeft]))
{
++nLeft;
}
nRight = nLeft+1;
// 鎵懼埌絎竴涓潪瀛楁瘝鐨勪綅緗?/span>
while (nRight<nLength && isalnum(strText[nRight]))
{
++nRight;
}
// 鍙杗Right-nLeft鍙互淇濊瘉鍙栧埌鐨勬槸涓涓獁ord錛屽叾涓笉浼?xì)鍚湁瀛椊W?/span>
if (nRight < nLength)
{
// 鎻愬彇鍗曡瘝
std::string strWord = strText.substr(nLeft, nRight - nLeft);
// 鍔犲叆璁版暟鍣?/span>
counter[strWord]+=1;
}
}
// 鎵撳嵃杈撳嚭
for (CountMap::iterator iter = counter.begin(); counter.end()!=iter; ++iter)
{
std::cout<<iter->first<<"\t\t"<<iter->second<<std::endl;
}
system("pause");
return 0;
}
python 浠g爜錛?br>
import re
filepath=r'c:/text.txt'
with open(filepath) as file:
text=file.read()
text=re.split('\W+', text)
d={}
for item in text:
d[item]=d.get(item, 0) +1
for key, value in d.items():
print('%s\t\t%s'%(key, value))
灝忎箵鍔犳補(bǔ)錛?br>

]]>