Palindrome avec cactères codés en utf8

bonsoir,

j’ai fait un programme en C qui teste si une chaine est un palindrome, cela marche tant que les caractères sont de type ascii
ma question est la suivante :
comment tester l’égalité de deux caractères codés en utf8 ?
merci !

Bonjour,

Regarde comment est formé un caractère UTF-8 :

http://fr.wikipedia.org/wiki/UTF-8

On peut déterminer la taille d’un caractère UTF-8 en examinant les bits du premier octet :

  • 0xxxxxxx : 1 octet
  • 110xxxxx : 2 octets
  • 1110xxxx : 3 octets
  • 11110xxx : 4 octets

Je te conseille d’utiliser la calculatrice (gnome-calculator) en mode “programmation”, pour pouvoir modifier les bits des nombres directement. Par exemple, pour tester si le premier bit est à zéro, il suffit de regarder si le premier octet est plus petit ou égal à 127.

Une fois que tu connais la taille des deux caractères UTF-8 à comparer :

  • s’ils ont la même taille, il faut que tout les octets du premier caractère soient identiques aux octets du deuxième
  • s’ils n’ont pas la même taille, ils sont différents

Bonne chance.

Salut et merci pour ta réponse très claire.
Dès que j’ai un peu de temps je me remets au travail …
zerimbak