Tu as identifié un manque sur le marché des médias sociaux pour les publications très très courtes. Maintenant que Twitter autorise les publications de 280 caractères, les personnes qui veulent des mises à jour rapides sur les réseaux sociaux ne sont pas servies. Tu décides de créer ton propre réseau social.
Pour rendre ton produit remarquable, tu le rends extrême et tu n'autorises que les publications de 5 caractères ou moins. Toute publication de plus de 5 caractères doit être tronquée à 5.
Pour permettre à tes utilisateurs de s'exprimer pleinement, tu autorises les emoji et les autres caractères Unicode.
La tâche consiste à tronquer à 5 caractères les strings fournies en entrée.
Un texte stocké sous forme numérique doit être converti en une série d'octets. Il existe 3 façons courantes de faire correspondre des caractères à des octets.
UTF-8 et UTF-16 sont tous deux des encodages Unicode, ce qui signifie qu'ils peuvent représenter une immense variété de caractères, notamment :
UTF-8 et UTF-16 sont tous deux des encodages à longueur variable, ce qui signifie que différents caractères occupent une quantité d'espace différente.
Prenons la lettre « a » et l'emoji « 😛 ». En UTF-16, la lettre occupe 2 octets, mais l'emoji en occupe 4.
L'astuce de cet exercice consiste à utiliser des API conçues autour des caractères Unicode (points de code) plutôt que des unités de code Unicode.
À partir de la version 8.1, les strings Tcl pouvaient prendre en charge les caractères Unicode sans la moindre difficulté. À l'époque, c'était une vraie avancée. Cependant, à mesure que de nouveaux caractères Unicode ont été créés, la capacité de Tcl à les prendre en charge a pris du retard.
L'implémentation interne de Tcl ne pouvait gérer que les caractères Unicode codés sur 16 bits, ce qui ne couvre que les 65 526 premiers caractères. Cette page wiki de Tcl, en particulier la discussion sur le langage « AndroWish », en donne les raisons.
Tcl 9.0 est la première version capable de prendre en charge le jeu complet de caractères Unicode. Par conséquent, cet exercice ne se résout (facilement) qu'avec la version 9.0 de Tcl.
Inscris-toi sur Exercism pour apprendre et maîtriser Tcl avec 135 exercices, et un vrai mentorat humain, le tout gratuitement.