场景
有一字符串, 字符串中, 包含中文, 英文, 数字, 标点等. 要求以每3个字符为一组, 把这字符串分开. (不是Unicode编码)
说明
2. 如果这字符串只有中文, 那也很简单.
3. 但是这个字符串是中文, 英文等混合的.
4. 如果是Unicode编码也很简单, 但这使用多字节, 也就是中文占用2个字节, 其他字符占用1个字节.
实现方法一
#include <vector>
#include <string>
bool BeChineseFirstCode(unsigned char chData)
{
return (0xB0 <= chData) && (0xF7 >= chData); // 汉子第一个字节的范围
}
bool BeChineseSecondCode(unsigned char chData)
{
return (0xA1 <= chData) && (0xFE >= chData); // 汉子第二个字节的范围
}
bool BeChinese(unsigned char* pWord)
{
return BeChineseFirstCode(pWord[0]) && BeChineseSecondCode(pWord[1]);
}
void SplitString(std::vector<std::string>& strVector, std::string& strData, int nCount)
{
int nLen = strData.length();
unsigned char* pData = (unsigned char*)strData.c_str();
int i &#