百度百科的解释:
substr 方法
basic_string::substrbasic_string substr(size_type _Off = 0,size_type _Count = npos) const;
功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。
参数:
_Off: 所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0.
_Count: 复制的字符数目
返回值:
一个子字符串,从其指定的位置开始
备注:
如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾
举例:
//对纯中文句子s1的正向减字最大匹配分词
string CHzSeg::SegmentHzStrMM(CDict &dict,string s1)const
{
string s2="";//保存句子s1的分词结果
while(!s1.empty())
{
unsigned int len=s1.size();
//如果待切分的句子大于最大切分单元
//len=最大切分单元,否则len=句子的长度
if(len>MAX_WORD_LENGTH)
len=MAX_WORD_LENGTH;
//取s1句子最左边长度len为的子句子
string w=s1.substr(0,len);
//判断刚刚取出来的子句子是不是一个词
bool isw=dict.IsWord(w);
//当w中至少有2个中文字&&不能构成字的时候,减去最右边的一个中文字
while(len>2&&isw==false)
{
///减去最右边的一个中文字
len-=2;
w=w.substr(0,len);
//再次判断减字后的w是不是构成一个词
isw=dict.IsWord(w);
}
s2+=w+SEPARATOR;
//如果第二个参数为0或者负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾
s1=s1.substr(w.size());
}//end while
return s2;
}