Comment calculer le nombre de caractères dans une chaîne unicode en C

Permet de dire que j'ai une chaîne de caractères:

char theString[] = "你们好āa";

Étant donné que mon encodage est utf-8, cette chaîne est de 12 octets de long (trois caractères hanzi sont trois octets chacun, le caractère latin avec le macron est de deux octets, et le 'a' est un octet:

strlen(theString) == 12

Comment puis-je compter le nombre de caractères? Comment puis-je faire l'équivalent de subscripting de sorte que:

theString[3] == "好"

Comment puis-je tranche, de chat et de ces chaînes?

InformationsquelleAutor jsj | 2011-09-04