截断中文字符串

作者在 2009-10-13 17:16:51 发布以下内容

void CAaaaDlg::TruncateString(CString input, CStringArray& strArray, int length)
{
 int len = input.GetLength() ;
 BYTE* flag = new BYTE[len];
 memset(flag,0,len);
 BYTE f = 0;
 for(int i=0;i<len;i++)
 {
  if((BYTE)input.GetAt(i) > 0xa0)
   f++;
  else
   f = 0;
  flag[i] = f;
 }
 long nowLen = 0;
 long oldLen = 0;
 while(nowLen < len)
 {
  oldLen = nowLen;
  nowLen += length;
  if(nowLen > len)
   nowLen = len;
  if(flag[nowLen-1]%2 == 1 && (nowLen+1) <= len)
   nowLen++;
  strArray.Add(input.Mid(oldLen,nowLen-oldLen));
 }
 delete[] flag; flag = NULL;
}
默认分类 | 阅读 904 次
文章评论,共0条
游客请输入验证码
浏览52306次
文章分类
最新评论