+char* next_utf8_char(char* str)
+{
+ if (!str) return NULL;
+
+ if (*str) {
+ str++;
+ while (*str && (*str & 0xC0) == 0x80)
+ str++;
+ }
+ return str;
+}
+
+char* nth_utf8_char(char* str, int n)
+{
+ int num_char = 0;
+ if (!str) return NULL;
+
+ if (*str) {
+ str++;
+ while (*str) {
+ if ((*str & 0xC0) != 0x80) num_char++;
+ if (num_char == n) break;
+ str++;
+ }
+ }
+ return str;
+}