65,184
社区成员




CString &originaltext;//这是引用传递进来的
if(""==originaltext)
return;
setlocale( LC_ALL, "" );//解决问题:_ASSERTE((unsigned)(c + 1) <= 256);程序中断
int len=originaltext.GetLength(),i=0;
for(i=0;i<len;i++){
if(isalpha(originaltext[i])==0)//当前不是字母,即不为a-z,A-Z
{
if((originaltext[i]=='-'||originaltext[i]=='\'')) //it's that's co-worker
{
if((i-1>0&&isalpha(originaltext[i-1]))&&(i+1<len&&isalpha(originaltext[i+1])))
end++;
}
else{
if(end!=-1) //end of word
{
word=originaltext.Mid(begin,end-begin+1);//word
word.MakeLower();
Insert_Pair=mapText.insert(pair<CString,stu>(word,stuTmp));//mapText存储单词
if(Insert_Pair.second==false){
miter=mapText.find(word);
if(miter!=mapText.end()){
miter->second.count++;
}
}
end=-1;
}
}
}else{ //当前为字母
if(end==-1){ //如果是第一个字母
begin=i;
end=i;
}else //如果不是第一个字母
end++;
}
}
for(i=0;i<len;i++){
if(originaltext[i]<255&&originaltext[i]>0){//扩充的ASCII字符范围为0-255,如是,处理一个字节
//处理英文
}else{//<0,>255的是汉字,处理两个字节
//处理中文等文体的文字
i++;
}
}
贴解决的代码