场景:
1.有时候需要统计utf8字符串的个数,单纯统计字节个数是不行的。
2.有时候也需要获取从某个位置开始的n个连续字符用于显示或计算。
static int GetUtf8LetterNumber(const char *s) { int i = 0, j = 0; while (s[i]) { if ((s[i] & 0xc0) != 0x80) j++; i++; } return j; } static int GetUtf8Word(const char *s,int wantedNum,int& offset) { int i = 0, j = 0; int readedNum = 0; int isReach = 0; while (s[i]) { if ((s[i] & 0xc0) != 0x80) { if(isReach) { break; } ++j; readedNum = j; if(j == wantedNum) { isReach = 1; } } ++i; } offset = i; return readedNum; }