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

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
    关注

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

    评论

报告相同问题?