I have a function which goes forward 1 utf-8 character and returns the number of bytes it took to get there:
// Moves the iterator to next unicode character in the string,
//returns number of bytes skipped
template<typename _Iterator1, typename _Iterator2>
inline size_t bringToNextUnichar(_Iterator1& it,
const _Iterator2& last) const {
if(it == last) return 0;
unsigned char c;
size_t res = 1;
for(++it; last != it; ++it, ++res) {
c = *it;
if(!(c&0x80) || ((c&0xC0) == 0xC0)) break;
}
return res;
}
How could I modify this so that I can go back a unicode character from an arbitrary character?
Thanks
Just decrement the iterator instead of incrementing it.