int test(const std::string & str, int len) { for (int i = 0 ; i < str.length() ;) { if (str[i] & 0x80) { i += 2; if (i > len) return i - 2; } else { ++i; if (i > len) return i - 1; } } return len; }