A1200266 2017-07-26 08:34 采纳率: 0%
浏览 3083

C++ 实现字符串按单个字符拆分,支持UTF-8

void CCreatEnt::CStringToSingleStr(const std::string input,std::vector &output)
{
std::string ch;
for(size_t i =0,len=0;i!=input.length();i+=len)
{
unsigned char byte = (unsigned)input[i];
if(byte >= 0xFC)//length 6
{
len = 6;
}
else if(byte >= 0xF8)
{
len = 5;
}
else if(byte >= 0xF0)
{
len = 4;
}
else if(byte >= 0xE0)
{
len = 3;
}
else if(byte >= 0xC8)
{
len = 2;
}
else
{
len = 1;
}
ch=input.substr(i,len);
output.push_back(ch);
}
}


这段代码是网络上查到的,但实际上返回的结果并不正确,若字符串为
1.3几个简单的命令5
返回值是
1
.
3
几个简
单的


5
请问如何才能按每个字符拆分呢?

  • 写回答

4条回答 默认 最新

  • A1200266 2017-07-26 08:35
    关注

    第一用插入代码功能,插入的代码还是不好看,请见谅,希望高手能指点一下如何拆分成一个个的字符,非常感谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题