资源简介
基于C++编写的中文分词程序,内有完整的代码,且有小词库,解压即可运行
代码片段和文件信息
//fc.cpp
#include
#include
#include
#include “fc.h“
CSegment::CSegment(int MaxLen)
{
m_MaxLen=MaxLen;
m_nPosIndex=0;
}
CSegment::~CSegment()
{
}
void CSegment::MM(CString& sourceint lenint frompos)
{
CString tmp=SubString(sourcefromposlen);
if(m_nPosIndex>=source.GetLength ()-1) return;
char* tmpstr=(char*)tmp.LockBuffer ();
if(Match(tmpstr))
{//匹配
m_sResult=m_sResult+CString(tmpstr)+“/“;
m_nPosIndex=m_nPosIndex+m_MaxLen;
m_MaxLen=6;
MM(sourcem_MaxLenm_nPosIndex);
}
else
{//不匹配
if(m_MaxLen>1)
{
m_MaxLen=m_MaxLen-2;
MM(sourcem_MaxLenm_nPosIndex);
}
else
{
m_sResult=m_sResult+“字典中没有‘“+CString(tmpstr)+“’字/“;
m_nPosIndex=m_nPosIndex+2;
m_MaxLen=6;
MM(sourcem_MaxLenm_nPosIndex);
}
}
tmp.UnlockBuffer ();
}
CString CSegment::SubString(CString & sourceint fromposint len)
{//取子串
char *mStr;//子串
char sChar[3];
int nLen=source.GetLength ();
mStr=new char[nLen];//malloc buffer
mStr[0]=0;
sChar[2]=0;
int nPosIndex=fromposLensxLen;
//还需做判断,若所取的最大的字符数已经超过了源串剩下的子串,则处理。
sxLen=(nLen-frompos);//源串剩下的子串的长度
if(len>sxLen)
Len=sxLen;
else
Len=len;
Len=Len+nPosIndex;
while(nPosIndex {
sChar[0]=source.GetAt (nPosIndex);//Get a char
sChar[1]=0;
if(source.GetAt (nPosIndex)<0)
{//double byte char
nPosIndex+=1;
sChar[1]=source.GetAt (nPosIndex);
}
nPosIndex+=1;
strcat(mStrsChar);
}
CString result(mStr);
delete mStr;//记住到后面要把指针删除调
return result;
}
BOOL CSegment::Match(char* str)
{//取出了子串mStr后,就要打开文本文件(字典D),循环读取字典D中有否该子串,有则返回正确,否则返回错误。
FILE * dict=fopen(“dic.txt““r“);
if(dict==NULL) return 0;
unsigned int len=strlen(str);
char * cmp=new char[len+1];
while(fgets(cmplen+1dict)!=NULL)//当读取到文件结束时,退出循环
{//比较读取的串cmp和str是否相同
if(strcmp(cmpstr)==0)//匹配
{
fclose(dict);
return 1;
}
}
fclose(dict);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 220 2005-09-12 16:10 分词\DIC.TXT
文件 2140 2011-03-24 18:45 分词\fc.cpp
文件 372 2011-03-14 05:43 分词\fc.h
文件 3537 2011-03-24 18:19 分词\ReadMe.txt
文件 1078 2011-03-24 18:19 分词\res\分词.ico
文件 396 2011-03-24 18:19 分词\res\分词.rc2
目录 0 2011-03-24 18:19 分词\res
文件 774 2011-03-24 18:41 分词\resource.h
文件 206 2011-03-24 18:19 分词\StdAfx.cpp
文件 1054 2011-03-24 18:19 分词\StdAfx.h
文件 35304 2011-03-24 19:01 分词\分词.aps
文件 1057 2011-03-24 19:06 分词\分词.clw
文件 2013 2011-03-24 18:19 分词\分词.cpp
文件 4253 2011-03-24 19:07 分词\分词.dsp
文件 533 2011-03-24 18:19 分词\分词.dsw
文件 1280 2011-03-24 18:19 分词\分词.h
文件 41984 2011-03-24 19:07 分词\分词.ncb
文件 48640 2011-03-24 19:07 分词\分词.opt
文件 664 2011-03-24 19:01 分词\分词.plg
文件 5247 2011-03-24 19:01 分词\分词.rc
文件 4272 2011-03-24 18:55 分词\分词Dlg.cpp
文件 1317 2011-03-24 18:28 分词\分词Dlg.h
目录 0 2011-03-24 19:12 分词
----------- --------- ---------- ----- ----
156341 23
评论
共有 条评论