Imprimir os nomes dos personagens


42

Todo caractere Unicode tem um nome, como "LATIN CAPITAL LETTER A". Um nome de caractere Unicode pode conter apenas letras maiúsculas, espaços em branco e o sinal de menos.

Escreva um programa que leia um texto e emita os nomes de cada caractere em uma nova linha. Por exemplo, se a entrada fosse "Olá, Mundo!", A saída seria

LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK
  • A entrada deve vir de um arquivo ou da entrada do usuário, não apenas de uma string no código.
  • A saída deve ser gravada em um arquivo ou stdout ou impressa na tela.
  • Internet e bibliotecas externas não são permitidas, todos os dados necessários devem estar no código.
  • Suponha que a entrada contenha apenas caracteres ASCII imprimíveis no intervalo de código latino básico 32-126. Você pode ignorar uma nova linha à direita.
  • Todas as linguagens de programação são permitidas. O menor código em bytes vence.

Os nomes oficiais dos caracteres Unicode podem ser encontrados aqui . Outras fontes:

Esta é a minha primeira pergunta, por isso gostaria de receber qualquer sugestão se isso puder ser melhorado.

Para os fins deste desafio, a lista abaixo deve ser normativa.

    32  0020        SPACE
!   33  0021        EXCLAMATION MARK
"   34  0022        QUOTATION MARK
#   35  0023        NUMBER SIGN
$   36  0024        DOLLAR SIGN
%   37  0025        PERCENT SIGN
&   38  0026        AMPERSAND
'   39  0027        APOSTROPHE
(   40  0028        LEFT PARENTHESIS
)   41  0029        RIGHT PARENTHESIS
*   42  002A        ASTERISK
+   43  002B        PLUS SIGN
,   44  002C        COMMA
-   45  002D        HYPHEN-MINUS
.   46  002E        FULL STOP
/   47  002F        SOLIDUS
0   48  0030        DIGIT ZERO
1   49  0031        DIGIT ONE
2   50  0032        DIGIT TWO
3   51  0033        DIGIT THREE
4   52  0034        DIGIT FOUR
5   53  0035        DIGIT FIVE
6   54  0036        DIGIT SIX
7   55  0037        DIGIT SEVEN
8   56  0038        DIGIT EIGHT
9   57  0039        DIGIT NINE
:   58  003A        COLON
;   59  003B        SEMICOLON
<   60  003C        LESS-THAN SIGN
=   61  003D        EQUALS SIGN
>   62  003E        GREATER-THAN SIGN
?   63  003F        QUESTION MARK
@   64  0040        COMMERCIAL AT
A   65  0041        LATIN CAPITAL LETTER A
B   66  0042        LATIN CAPITAL LETTER B
C   67  0043        LATIN CAPITAL LETTER C
D   68  0044        LATIN CAPITAL LETTER D
E   69  0045        LATIN CAPITAL LETTER E
F   70  0046        LATIN CAPITAL LETTER F
G   71  0047        LATIN CAPITAL LETTER G
H   72  0048        LATIN CAPITAL LETTER H
I   73  0049        LATIN CAPITAL LETTER I
J   74  004A        LATIN CAPITAL LETTER J
K   75  004B        LATIN CAPITAL LETTER K
L   76  004C        LATIN CAPITAL LETTER L
M   77  004D        LATIN CAPITAL LETTER M
N   78  004E        LATIN CAPITAL LETTER N
O   79  004F        LATIN CAPITAL LETTER O
P   80  0050        LATIN CAPITAL LETTER P
Q   81  0051        LATIN CAPITAL LETTER Q
R   82  0052        LATIN CAPITAL LETTER R
S   83  0053        LATIN CAPITAL LETTER S
T   84  0054        LATIN CAPITAL LETTER T
U   85  0055        LATIN CAPITAL LETTER U
V   86  0056        LATIN CAPITAL LETTER V
W   87  0057        LATIN CAPITAL LETTER W
X   88  0058        LATIN CAPITAL LETTER X
Y   89  0059        LATIN CAPITAL LETTER Y
Z   90  005A        LATIN CAPITAL LETTER Z
[   91  005B        LEFT SQUARE BRACKET
\   92  005C        REVERSE SOLIDUS
]   93  005D        RIGHT SQUARE BRACKET
^   94  005E        CIRCUMFLEX ACCENT
_   95  005F        LOW LINE
`   96  0060        GRAVE ACCENT
a   97  0061        LATIN SMALL LETTER A
b   98  0062        LATIN SMALL LETTER B
c   99  0063        LATIN SMALL LETTER C
d   100 0064        LATIN SMALL LETTER D
e   101 0065        LATIN SMALL LETTER E
f   102 0066        LATIN SMALL LETTER F
g   103 0067        LATIN SMALL LETTER G
h   104 0068        LATIN SMALL LETTER H
i   105 0069        LATIN SMALL LETTER I
j   106 006A        LATIN SMALL LETTER J
k   107 006B        LATIN SMALL LETTER K
l   108 006C        LATIN SMALL LETTER L
m   109 006D        LATIN SMALL LETTER M
n   110 006E        LATIN SMALL LETTER N
o   111 006F        LATIN SMALL LETTER O
p   112 0070        LATIN SMALL LETTER P
q   113 0071        LATIN SMALL LETTER Q
r   114 0072        LATIN SMALL LETTER R
s   115 0073        LATIN SMALL LETTER S
t   116 0074        LATIN SMALL LETTER T
u   117 0075        LATIN SMALL LETTER U
v   118 0076        LATIN SMALL LETTER V
w   119 0077        LATIN SMALL LETTER W
x   120 0078        LATIN SMALL LETTER X
y   121 0079        LATIN SMALL LETTER Y
z   122 007A        LATIN SMALL LETTER Z
{   123 007B        LEFT CURLY BRACKET
|   124 007C        VERTICAL LINE
}   125 007D        RIGHT CURLY BRACKET
~   126 007E        TILDE

4
Olá, fui adiante e editei sua pergunta, reverta se não concorda. Você não precisa de mais fontes de informação, precisa de uma versão normativa da pergunta para evitar problemas com discrepâncias. Peguei ssec.wisc.edu/~tomw/java/unicode.html#x0000 como era o mais conciso. Fora isso, +1
Level River St

Obrigado pela edição @steveverrill, eu estava com preguiça de fazer isso sozinho.
eu e meu gato

Aparentemente, os valores estão disponíveis como parte do Windows, em C:\Windows\System32\getuname.dll. Isso também conta como uma "biblioteca externa", mesmo se incorporada ao Windows?
lc.

6
Acabei de aprender a palavra solidus.
Luke

Respostas:


31

Java - 113 bytes (152 se lido na linha de comandos)

Edit: removido colchetes inúteis.

Edit2: variável desnecessária removida.

Edit3: Em vez de Character.getName () eu uso c.getName ().

Edit4: Passando string como argumento de linha de comando.

Com argumento de linha de comando (113 bytes):

class Z{public static void main(String[]x){for(Character c:x[0].toCharArray())System.out.println(c.getName(c));}}

Com linha de leitura (152 bytes):

class Z{public static void main(String[]x){for(Character c:new java.util.Scanner(System.in).nextLine().toCharArray())System.out.println(c.getName(c));}}

Java tem tudo o necessário. Tenho certeza que isso pode ser jogado para baixo.


7
Droga! Um builtin! Para tornar esse desafio interessante, eu consideraria que isso não está em conformidade com "todos os dados necessários devem estar no código". Muito esperto, no entanto.
Level River St

1
@steveverrill Oh bem :). Eu vi outro desafio em que o lisp comum fez algo semelhante (contando de um a 100, se bem me lembro).
Peter Lenkefi

6
Uau, desta vez o Java tem a chance de vencer muitas linguagens de golfe.
vsz 6/09/15

4
Solução alternativa para Java 8: x[0].chars().forEach(i->System.out.println(Character.getName(i)));economiza 2 caracteres em comparação com a solução de argumento da linha de comandos (substituindo o forloop).
Hjk

3
Ou talvezx[0].chars().map(' '::getName).forEach(System.out::println);
Eric

18

Python 3, 56 bytes

Usa uma função interna unicodedata.name(), portanto, isso pode não ser competente. A resposta do Java fez da mesma forma, então achei que valeria a pena postar.

from unicodedata import*
for i in input():print(name(i))

Eu também queria postar um em python, mas minha resposta java era bastante barata :).
Peter Lenkefi

1
Certamente for i in input():print(unicodedata.name(i))é mais curto?
Eric

1
@ Eric Não. Você precisa import unicodedata, então é mais tempo .
mbomb007

17

JavaScript (ES6) 594 618 626

Observe que eu poderia salvar ~ 30 bytes compactando a cadeia longa com atob / btoa, mas o caractere utf8 acima de '~' não é bem aceito pelo editor de postagem do Stack Exchange. Prefiro manter um snippet em execução.

Editar 8 caracteres salvos thx @Ypnypn

Compactação óbvia de palavras repetidas. A nova linha dentro dos backticks é significativa e contada.

Teste a execução do snippet no Firefox.

// TEST SUITE
// for testing purpose, redefine alert() to write inside the snippet body
alert=x=>O.innerHTML=x
// for testing purpose, redefine prompt() to have a default text containing all characters
_prompt=prompt
prompt=(i,s)=>{
  for(s='',i=32;i<127;i++)s+=String.fromCharCode(i);
  return _prompt("Insert your message or keep the default",s);
}  
  
// That's the answer code:
z='SPACE/EXCLAMA0QUOTA0NUMBER1DOLLAR1PERCENT1AMPERSAND/APOSTROPHE3242ASTERISK/PLUS1COMMA/HYPHEN-MINUS/FULL STOP/78ZERO8ONE8TWO8THREE8FOUR8FIVE8SIX8SEVEN8EIGHT8NINE86SEMI6LESS-THAN1EQUALS1GREATER-THAN1QUES0COMMERCIAL AT3SQUARE5REVERSE 7/4SQUARE5CIRCUMFLEX9/LOW LINE/GRAVE93CURLY5VERTICAL LINE/4CURLY5TILDE'.replace(/\d/g,c=>'TION MARK/, SIGN/,PARENTHESIS/,/LEFT ,RIGHT , BRACKET/,COLON/,SOLIDUS,/DIGIT , ACCENT'.split`,`[c]).split`/`,alert([...prompt()].map(c=>(q=c.charCodeAt()-32)<33?z[q]:q<59?'LATIN CAPITAL LETTER '+c:q<65?z[q-26]:q<91?'LATIN SMALL LETTER '+c.toUpperCase():z[q-52]).join`
`)
<pre id=O></pre>


9

R, 54 bytes 62

library(Unicode)
cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")

Edit: por comentário @flodels, eu preciso lê-lo da conexão primeiro, então tive que adicionar scan. Esta também é provavelmente uma solução não competente de acordo com todas as regras.

Uso

> cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")
1: 'Hello, World!'
2: 
Read 1 item
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

Você também pode agrupá-lo em uma função para um uso mais conveniente

UNI <- function(x)cat(paste0(u_char_name(utf8ToInt(x)),"\n"))

Então, o uso é apenas

UNI("Hello, World!")

1
Sua contagem de bytes está correta :)
Decay Beta 7/15

1
E bem-vindo ao PPCG! : D
Beta Decay

É bom para você ter incorporado a tarefa, mas a saída não é a solicitada - tabela de 4 colunas em vez de 1 tabela de colunas. Eu acho que você deve adicionar algum núcleo para obter a saída correta
edc65

@ edc65 tão fácil de consertar, eu pensei nisso como um bônus.
David Arenburg

@ edc65 corrigiu.
David Arenburg

7

Perl 6 , 21 bytes

Não vi uma regra especificamente contra o uso de um método interno para obter os nomes unicode.
(Também a resposta Java, que atualmente é a mais votada, faz o mesmo)

.say for get.uninames

1
Perl 6 é estranho. Eu amo isso, no entanto.
cat

6

Perl (+ coreutils) , 563 bytes

Nota : O abaixo não funcionará como está, ele precisa ser reproduzido no xxddespejo abaixo! Tentei passar os dados brutos diretamente para zcat, mas isso falhou. Posso usar apenas um módulo Perl Gzip nativo, mas isso será amanhã com certeza!

use MIME::Base64;$x=encode_base64(join'',<DATA>);print eval(`base64 -D<<<'$x'|zcat`)->[-32+ord$_].$/for<>=~/./g
__END__
.....x.U.._.u.[r. .@.._~.E(X.i..............J_....1..N......7K......|ih....P...a7......,a.....o.!.=N.K.i.....$..vFv.Pv..........*o...=..|o..O.B..c%2\bj1Gr...nr.|c.{...q......3......aw;b\1...C.Yp..l..K...bB..2C...K..O8e.v...."..C..
.s; .}Oj.....JC..-`@.gMXM..@M...41k.i.K..M.&.&.&.&.&.MdM.&.;..X5q..M.wM|o....3.s.{....MJf4.h>G..B...~$....w...WC.q.2..b.o..Hh.7|.... c..(.I......d|.1...8.8.8.x.q.1.X..*.U.W..d|.....f..4f...l..g'>..oUq4.....j.jU...
0000000: 7573 6520 4d49 4d45 3a3a 4261 7365 3634  use MIME::Base64
0000010: 3b24 783d 656e 636f 6465 5f62 6173 6536  ;$x=encode_base6
0000020: 3428 6a6f 696e 2727 2c3c 4441 5441 3e29  4(join'',<DATA>)
0000030: 3b70 7269 6e74 2065 7661 6c28 6062 6173  ;print eval(`bas
0000040: 6536 3420 2d44 3c3c 3c27 2478 277c 7a63  e64 -D<<<'$x'|zc
0000050: 6174 6029 2d3e 5b2d 3332 2b6f 7264 245f  at`)->[-32+ord$_
0000060: 5d2e 242f 666f 723c 3e3d 7e2f 2e2f 670a  ].$/for<>=~/./g.
0000070: 5f5f 454e 445f 5f0a 1f8b 0808 ff78 ec55  __END__......x.U
0000080: 0003 5f00 7594 5b72 eb20 0c40 b7c2 5f7e  .._.u.[r. .@.._~
0000090: da45 2858 b669 c4c3 089c a49d ee7f 1b17  .E(X.i..........
00000a0: 92b1 9df4 4a5f 96ce d180 3192 7f4e 9cc0  ....J_....1..N..
00000b0: e2e9 e384 374b e0a1 b818 8c87 7c69 68a9  ....7K......|ih.
00000c0: b1bc 8150 fd19 b361 3785 960d 9108 f62c  ...P...a7......,
00000d0: 61b6 18ca 9682 6f80 210c 3d4e 914b 8e69  a.....o.!.=N.K.i
00000e0: eefb 108e c524 c8ad 7646 76dc 5076 d3fc  .....$..vFv.Pv..
00000f0: 9701 17cc 8efb ae89 2a6f cbda e83d b4e7  ........*o...=..
0000100: 7c6f ab85 4fef 42ed d563 2532 5c62 6a31  |o..O.B..c%2\bj1
0000110: 4772 c383 0e6e 72c5 7c63 8e7b 1203 ee71  Gr...nr.|c.{...q
0000120: b91e bccc 190f 33c6 9a8f c4ad 8761 773b  ......3......aw;
0000130: 625c 31ec 19f6 43ec 5970 8f8d 6ca4 d84b  b\1...C.Yp..l..K
0000140: 18bd db62 42e6 cf32 43d8 ce84 4b05 da4f  ...bB..2C...K..O
0000150: 3865 8476 f4b7 8aa5 22bf de43 ff0a ed73  8e.v...."..C...s
0000160: 3b20 037d 4f6a b714 8c85 e44a 4384 a52d  ; .}Oj.....JC..-
0000170: 6040 1367 4d58 4d0c 9a40 4d8c 9a98 3431  `@.gMXM..@M...41
0000180: 6bc2 69e2 4b13 174d 9026 bc26 8226 a226  k.i.K..M.&.&.&.&
0000190: 9226 164d 644d b026 d43b af9a 5835 71d5  .&.MdM.&.;..X5q.
00001a0: c44d 1377 4d7c 6fd3 cdad a133 9a73 067b  .M.wM|o....3.s.{
00001b0: c1fe aeb9 4d4a 6634 c768 3e47 febf 42eb  ....MJf4.h>G..B.
00001c0: b2ad 7e24 bc19 b0fd 77d2 978c 5743 cf71  ..~$....w...WC.q
00001d0: 9a32 acf8 621e 6fc1 1e48 68fa 377c 96b1  .2..b.o..Hh.7|..
00001e0: 95f1 2063 94f1 28e3 49c6 b38c 9d8c bf64  .. c..(.I......d
00001f0: 7c91 31c9 d8cb 38c8 38ca 38c9 7891 7196  |.1...8.8.8.x.q.
0000200: 31cb 58b9 cb2a e355 c657 19df 647c 97f1  1.X..*.U.W..d|..
0000210: dec2 b666 babf 3466 ebdf e26c eff5 6727  ...f..4f...l..g'
0000220: 3efb f76f 5571 34e0 e9f7 1fe2 6a1f 6a55  >..oUq4.....j.jU
0000230: 0700 00                                  ...

Para reproduzir o arquivo, execute:

xxd -r > 57413.pl

cole o hexdump e pressione Enter, depois Ctrl+ D.

Correr como:

perl 57413.pl <<< 'Hello, World!'
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

Versão Perl pura anterior, 893 bytes

print[SPACE,'EXCLAMATION MARK','QUOTATION MARK',NUMBER.($s=" SIGN"),DOLLAR.$s,PERCENT.$s,AMPERSAND,APOSTROPHE,LEFT.($p=" PARENTHESIS"),RIGHT.$p,ASTERISK,PLUS.$s,COMMA,'HYPHEN-MINUS','FULL STOP',$d=SOLIDUS,($d="DIGIT ").ZERO,$d.ONE,$d.TWO,$d.THREE,$d.FOUR,$d.FIVE,$d.SIX,$d.SEVEN,$d.EIGHT,$d.NINE,COLON,SEMICOLON,"LESS-THAN$s",EQUALS.$s,"GREATER-THAN$s",'QUESTION MARK','COMMERCIAL AT',($b=($a=LATIN)." CAPITAL ".($l="LETTER ")).A,$b.B,$b.C,$b.D,$b.E,$b.F,$b.G,$b.H,$b.I,$b.J,$b.K,$b.L,$b.M,$b.N,$b.O,$b.P,$b.Q,$b.R,$b.S,$b.T,$b.U,$b.V,$b.W,$b.X,$b.Y,$b.Z,'LEFT SQUARE '.($e=BRACKET),"REVERSE $d","RIGHT SQUARE $e",'CIRCUMFLEX ACCENT','LOW LINE','GRAVE ACCENT',($m="$a SMALL $l ").A,$m.B,$m.C,$m.D,$m.E,$m.F,$m.G,$m.H,$m.I,$m.J,$m.K,$m.L,$m.M,$m.N,$m.O,$m.P,$m.Q,$m.R,$m.S,$m.T,$m.U,$m.V,$m.W,$m.X,$m.Y,$m.Z,"LEFT CURLY $e",'VERTICAL LINE',"RIGHT CURLY $e",TILDE]->[-32+ord$_].$/for<>=~/./g

5

awk - 794 739

     1 LETRA DE CAPITAL LATINA B
     2 LETRA DE CAPITAL LATINA E
     3 LETRA DE CAPITAL LATINA G
     4 CARTA CAPITAL LATINA I
     5 LETRA CAPITAL LATINA N
     6 SUPORTE CURLY ESQUERDO 
     7 LETRA PEQUENA L
     8 LETRA PEQUENA LATINA P
     9 LETRA PEQUENA LATINA L
    10 LETRA PEQUENA LATINA I
    11 LETRA PEQUENA LATINA T
    12 PARENTESE ESQUERDA 
    13 MARCA DE COTAÇÃO 
    14 LETRA PEQUENA LATINA I
    15 COMMA 
    16 LETRA CAPITAL LATINA L
    17 LETRA PEQUENA LATINA V
    18 COMMA 
    19 LETRA CAPITAL LATINA S
    20 LETRA PEQUENA LATINA V
    21 COMMA 
    22 LETRA PEQUENA LATINA A
    23 LETRA PEQUENA LATINA X
    24 COMMA 
    25 CIRCUMFLEX ACCENT 
    26 LETRA PEQUENA LATINA X
    27 COMMA 
    28 SUPORTE QUADRADO ESQUERDO 
    29 LETRA PEQUENA LATINA X
    30 COMMA 
    31 LETRA CAPITAL LATINA Q
    32 COMMA 
    33 LETRA CAPITAL LATINA O
    34 COMMA 
    35 LETRA PEQUENA LATINA T
    36 LETRA CAPITAL LATINA K
    37 COMMA 
    38 LETRA PEQUENA LATINA C
    39 LETRA CAPITAL LATINA K
    40 COMMA 
    41 LETRA CAPITAL LATINA V
    42 COMMA 
    43 LETRA PEQUENA LATINA Q
    44 LETRA PEQUENA LATINA X
    45 COMMA 
    46 LETRA PEQUENA LATINA G
    47 COMMA 
    48 LETRA CAPITAL LATINA I
    49 COMMA 
    50 LETRA PEQUENA LATINA W
    51 LETRA PEQUENA LATINA U
    52 COMMA 
    53 LETRA CAPITAL LATINA X
    54 COMMA 
    55 LETRA PEQUENA LATINA B
    56 LETRA PEQUENA LATINA Y
    57 COMMA 
    58 LETRA PEQUENA LATINA B
    59 ESQUERDA CURLY SUPORTE 
    60 COMMA 
    61 LETRA PEQUENA LATINA B
    62 LETRA PEQUENA LATINA Z
    63 COMMA 
    64 LETRA PEQUENA LATINA B
    65 LETRA PEQUENA LATINA D
    66 COMMA 
    67 LETRA PEQUENA LATINA B
    68 LETRA PEQUENA LATINA P
    69 COMMA 
    70 LETRA PEQUENA LATINA B
    71 LETRA PEQUENA L
    72 COMMA 
    73 LETRA PEQUENA LATINA B
    74 SUPORTE CURLY DIREITO 
    75 COMMA 
    76 LETRA PEQUENA LATINA B
    77 LETRA PEQUENA LATINA K
    78 COMMA 
    79 LETRA PEQUENA LATINA B
    80 LETRA PEQUENA LATINA L
    81 COMMA 
    82 LETRA PEQUENA LATINA B
    83 LETRA PEQUENA LATINA O
    84 COMMA 
    85 LETRA PEQUENA LATINA E
    86 COMMA 
    87 LETRA DE CAPITAL LATINA P
    88 COMMA 
    89 LETRA CAPITAL LATINA R
    90 LETRA PEQUENA LATINA X
    91 COMMA 
    92 LOW LINE 
    93 LETRA PEQUENA LATINA X
    94 COMMA 
    95 LETRA CAPITAL LATINA J
    96 LETRA PEQUENA LATINA X
    97 COMMA 
    98 LETRA CAPITAL LATINA U
    99 LETRA PEQUENA LATINA V
   100 COMMA 
   101 LETRA DE CAPITAL LATINA M
   102 TILDE 
   103 COMMA 
   104 ESPAÇO 
   105 LETRA PEQUENA LATINA T
   106 GRAVE ACCENT 
   107 LETRA DE CAPITAL LATINA Y
   108 COMMA 
   109 LETRA DE CAPITAL LATINA Z
   110 LETRA CAPITAL LATINA X
   111 COMMA 
   112 LETRA PEQUENA C LATINA
   113 GRAVE ACCENT 
   114 LETRA DE CAPITAL LATINA Y
   115 COMMA 
   116 LETRA DE CAPITAL LATINA N
   117 SOLIDUS REVERSO 
   118 SOLIDUS REVERSO 
   119 COMMA 
   120 LINHA VERTICAL 
   121 LETRA PEQUENA L
   122 COMMA 
   123 LETRA PEQUENA M
   124 SOLIDUS REVERSO 
   125 SOLIDUS REVERSO 
   126 COMMA 
   127 ESPAÇO 
   128 LETRA PEQUENA LATINA T
   129 LETRA PEQUENA LATINA H
   130 LETRA CAPITAL LATINA Y
   131 COMMA 
   132 LETRA CAPITAL LATINA T
   133 LETRA PEQUENA L
   134 COMMA 
   135 LETRA PEQUENA LATINA C
   136 LETRA PEQUENA LATINA H
   137 LETRA DE CAPITAL LATINA Y
   138 COMMA 
   139 LETRA PEQUENA L
   140 ESPAÇO 
   141 LETRA DE CAPITAL LATINA H
   142 LETRA DE CAPITAL LATINA Y
   143 LETRA DE CAPITAL LATINA P
   144 LETRA CAPITAL LATINA H
   145 LETRA DE CAPITAL LATINA E
   146 LETRA DE CAPITAL LATINA N
   147 HYPHEN-MINUS 
   148 LETRA DE CAPITAL LATINA M
   149 LETRA DE CAPITAL LATINA I
   150 LETRA CAPITAL LATINA N
   151 LETRA CAPITAL LATINA U
   152 LETRA CAPITAL LATINA S
   153 ESPAÇO 
   154 LETRA CAPITAL LATINA G
   155 LETRA CAPITAL LATINA R
   156 LETRA DE CAPITAL LATINA E
   157 LETRA DE CAPITAL LATINA A
   158 LETRA CAPITAL LATINA T
   159 LETRA CAPITAL LATINA E
   160 LETRA CAPITAL LATINA R
   161 HYPHEN-MINUS 
   162 LETRA CAPITAL LATINA T
   163 LETRA DE CAPITAL LATINA H
   164 LETRA DE CAPITAL LATINA A
   165 LETRA CAPITAL LATINA N
   166 ESPAÇO 
   167 LETRA CAPITAL LATINA P
   168 LETRA DE CAPITAL LATINA A
   169 LETRA CAPITAL LATINA R
   170 LETRA CAPITAL LATINA E
   171 LETRA DE CAPITAL LATINA N
   172 LETRA CAPITAL LATINA T
   173 LETRA CAPITAL LATINA H
   174 LETRA DE CAPITAL LATINA E
   175 LETRA CAPITAL LATINA S
   176 LETRA DE CAPITAL LATINA I
   177 LETRA CAPITAL LATINA S
   178 ESPAÇO 
   179 LETRA DE CAPITAL LATINA E
   180 LETRA CAPITAL LATINA X
   181 LETRA DE CAPITAL LATINA C
   182 LETRA DE CAPITAL LATINA L
   183 LETRA DE CAPITAL LATINA A
   184 LETRA DE CAPITAL LATINA M
   185 LETRA DE CAPITAL LATINA A
   186 LETRA CAPITAL LATINA T
   187 LETRA CAPITAL LATINA I
   188 LETRA DE CAPITAL LATINA O
   189 LETRA CAPITAL LATINA N
   190 ESPAÇO 
   191 LETRA DE CAPITAL LATINA C
   192 LETRA DE CAPITAL LATINA O
   193 LETRA CAPITAL LATINA M
   194 LETRA CAPITAL LATINA M
   195 LETRA CAPITAL LATINA E
   196 LETRA CAPITAL LATINA R
   197 LETRA CAPITAL LATINA C
   198 LETRA DE CAPITAL LATINA I
   199 LETRA DE CAPITAL LATINA A
   200 LETRA CAPITAL LATINA L
   201 ESPAÇO 
   202 LETRA DE CAPITAL LATINA C
   203 LETRA DE CAPITAL LATINA I
   204 LETRA CAPITAL LATINA R
   205 LETRA DE CAPITAL LATINA C
   206 LETRA CAPITAL LATINA U
   207 LETRA DE CAPITAL LATINA M
   208 LETRA CAPITAL LATINA F
   209 LETRA CAPITAL LATINA L
   210 LETRA DE CAPITAL LATINA E
   211 LETRA CAPITAL LATINA X
   212 SPACE 
   213 LETRA DE CAPITAL LATINA A
   214 LETRA CAPITAL LATINA P
   215 LETRA DE CAPITAL LATINA O
   216 LETRA CAPITAL LATINA S
   217 LETRA CAPITAL LATINA T
   218 LETRA CAPITAL LATINA R
   219 LETRA CAPITAL LATINA O
   220 LETRA CAPITAL LATINA P
   221 LETRA CAPITAL LATINA H
   222 LETRA CAPITAL LATINA E
   223 ESPAÇO 
   224 LETRA CAPITAL LATINA S
   225 LETRA CAPITAL LATINA E
   226 LETRA CAPITAL LATINA M
   227 LETRA DE CAPITAL LATINA I
   228 LETRA DE CAPITAL LATINA C
   229 LETRA CAPITAL LATINA O
   230 LETRA CAPITAL LATINA L
   231 LETRA DE CAPITAL LATINA O
   232 LETRA CAPITAL LATINA N
   233 ESPAÇO 
   234 LETRA CAPITAL LATINA A
   235 LETRA CAPITAL LATINA M
   236 LETRA CAPITAL LATINA P
   237 LETRA CAPITAL LATINA E
   238 LETRA CAPITAL LATINA R
   239 LETRA CAPITAL LATINA S
   240 LETRA CAPITAL LATINA A
   241 LETRA CAPITAL LATINA N
   242 LETRA D DO CAPITAL LATINO
   243 ESPAÇO 
   244 LETRA CAPITAL LATINA L
   245 LETRA CAPITAL LATINA E
   246 LETRA CAPITAL LATINA S
   247 LETRA CAPITAL LATINA S
   248 HYPHEN-MINUS 
   249 LETRA CAPITAL LATINA T
   250 LETRA CAPITAL LATINA H
   251 LETRA DE CAPITAL LATINA A
   252 LETRA CAPITAL LATINA N
   253 ESPAÇO 
   254 LETRA CAPITAL LATINA Q
   255 LETRA CAPITAL LATINA U
   256 LETRA CAPITAL LATINA O
   257 LETRA CAPITAL LATINA T
   258 LETRA CAPITAL LATINA A
   259 LETRA CAPITAL LATINA T
   260 LETRA DE CAPITAL LATINA I
   261 LETRA CAPITAL LATINA O
   262 LETRA CAPITAL LATINA N
   263 ESPAÇO 
   264 LETRA CAPITAL LATINA V
   265 LETRA CAPITAL LATINA E
   266 LETRA CAPITAL LATINA R
   267 LETRA CAPITAL LATINA T
   268 LETRA DE CAPITAL LATINA I
   269 ​​LETRA CAPITAL LATINA C
   270 LETRA CAPITAL LATINA A
   271 LETRA DE CAPITAL LATINA L
   272 ESPAÇO 
   273 LETRA CAPITAL LATINA Q
   274 LETRA CAPITAL LATINA U
   275 LETRA CAPITAL LATINA E
   276 LETRA CAPITAL LATINA S
   277 LETRA CAPITAL LATINA T
   278 LETRA DE CAPITAL LATINA I
   279 LETRA CAPITAL LATINA O
   280 LETRA CAPITAL LATINA N
   281 ESPAÇO 
   282 LETRA DE CAPITAL LATINA A
   283 LETRA CAPITAL LATINA S
   284 LETRA CAPITAL LATINA T
   285 LETRA CAPITAL LATINA E
   286 LETRA CAPITAL LATINA R
   287 LETRA CAPITAL LATINA I
   288 LETRA CAPITAL LATINA S
   289 LETRA CAPITAL LATINA K
   290 ESPAÇO 
   291 LETRA DE CAPITAL LATINA C
   292 LETRA DE CAPITAL LATINA A
   293 LETRA CAPITAL LATINA P
   294 LETRA DE CAPITAL LATINA I
   295 LETRA CAPITAL LATINA T
   296 LETRA CAPITAL LATINA A
   297 LETRA CAPITAL LATINA L
   298 ESPAÇO 
   299 LETRA CAPITAL LATINA S
   300 LETRA CAPITAL LATINA O
   301 LETRA CAPITAL LATINA L
   302 LETRA DE CAPITAL LATINA I
   303 LETRA CAPITAL LATINA D
   304 LETRA CAPITAL LATINA U
   305 LETRA CAPITAL LATINA S
   306 ESPAÇO 
   307 LETRA CAPITAL LATINA B
   308 LETRA CAPITAL LATINA R
   309 LETRA CAPITAL LATINA A
   310 LETRA DE CAPITAL LATINA C
   311 LETRA CAPITAL LATINA K
   312 LETRA CAPITAL LATINA E
   313 LETRA CAPITAL LATINA T
   314 ESPAÇO 
   315 LETRA CAPITAL LATINA R
   316 LETRA CAPITAL LATINA E
   317 LETRA CAPITAL LATINA V
   318 LETRA CAPITAL LATINA E
   319 LETRA CAPITAL LATINA R
   320 LETRA CAPITAL LATINA S
   321 LETRA CAPITAL LATINA E
   322 ESPAÇO 
   323 LETRA CAPITAL LATINA P
   324 LETRA CAPITAL LATINA E
   325 LETRA CAPITAL LATINA R
   326 LETRA DE CAPITAL LATINA C
   327 LETRA CAPITAL LATINA E
   328 LETRA CAPITAL LATINA N
   329 LETRA CAPITAL LATINA T
   330 SPACE 
   331 LETRA CAPITAL LATINA A
   332 LETRA DE CAPITAL LATINA C
   333 LETRA DE CAPITAL LATINA C
   334 LETRA CAPITAL LATINA E
   335 LETRA DE CAPITAL LATINA N
   336 LETRA CAPITAL LATINA T
   337 ESPAÇO 
   338 LETRA DE CAPITAL LATINA L
   339 LETRA CAPITAL LATINA E
   340 LETRA CAPITAL LATINA T
   341 LETRA EM CAPITAL LATINA T
   342 LETRA CAPITAL LATINA E
   343 LETRA CAPITAL LATINA R
   344 ESPAÇO 
   345 LETRA D DO CAPITAL LATINO
   346 LETRA CAPITAL LATINA O
   347 LETRA DE CAPITAL LATINA L
   348 LETRA DE CAPITAL LATINA L
   349 LETRA CAPITAL LATINA A
   350 LETRA CAPITAL LATINA R
   351 ESPAÇO 
   352 LETRA CAPITAL LATINA E
   353 LETRA CAPITAL LATINA Q
   354 LETRA CAPITAL LATINA U
   355 LETRA CAPITAL LATINA A
   356 LETRA CAPITAL LATINA L
   357 LETRA CAPITAL LATINA S
   358 ESPAÇO 
   359 LETRA CAPITAL LATINA S
   360 LETRA CAPITAL LATINA Q
   361 LETRA CAPITAL LATINA U
   362 LETRA DE CAPITAL LATINA A
   363 LETRA CAPITAL LATINA R
   364 LETRA CAPITAL LATINA E
   365 SPACE 
   366 LETRA CAPITAL LATINA N
   367 LETRA CAPITAL LATINA U
   368 LETRA DE CAPITAL LATINA M
   369 LETRA DE CAPITAL LATINA B
   370 LETRA CAPITAL LATINA E
   371 LETRA CAPITAL LATINA R
   372 ESPAÇO 
   373 LETRA D DO CAPITAL LATINO
   374 LETRA DE CAPITAL LATINA I
   375 LETRA CAPITAL LATINA G
   376 LETRA DE CAPITAL LATINA I
   377 LETRA CAPITAL LATINA T
   378 ESPAÇO 
   379 LETRA CAPITAL LATINA R
   380 LETRA DE CAPITAL LATINA I
   381 LETRA EM CAPITAL LATINA G
   382 LETRA CAPITAL LATINA H
   383 LETRA CAPITAL LATINA T
   384 ESPAÇO 
   385 LETRA CAPITAL LATINA T
   386 LETRA CAPITAL LATINA H
   387 LETRA CAPITAL LATINA R
   388 LETRA CAPITAL LATINA E
   389 LETRA CAPITAL LATINA E
   390 SPACE 
   391 LETRA DE CAPITAL LATINA C
   392 LETRA CAPITAL LATINA O
   393 LETRA CAPITAL LATINA L
   394 LETRA CAPITAL LATINA O
   395 LETRA CAPITAL LATINA N
   396 ESPAÇO 
   397 LETRA CAPITAL LATINA T
   398 LETRA DE CAPITAL LATINA I
   399 LETRA CAPITAL LATINA L
   400 LETRA CAPITAL LATINA D
   401 LETRA CAPITAL LATINA E
   402 ESPAÇO 
   403 LETRA DE CAPITAL LATINA C
   404 LETRA CAPITAL LATINA O
   405 LETRA CAPITAL LATINA M
   406 LETRA CAPITAL LATINA M
   407 LETRA CAPITAL LATINA A
   408 SPACE 
   409 LETRA DE CAPITAL LATINA C
   410 LETRA CAPITAL LATINA U
   411 LETRA CAPITAL LATINA R
   412 LETRA EM CAPITAL LATINA L
   413 LETRA DE CAPITAL LATINA Y
   414 ESPAÇO 
   415 LETRA CAPITAL LATINA S
   416 LETRA DE CAPITAL LATINA P
   417 LETRA DE CAPITAL LATINA A
   418 LETRA DE CAPITAL LATINA C
   419 LETRA CAPITAL LATINA E
   420 SPACE 
   421 LETRA CAPITAL LATINA S
   422 LETRA DE CAPITAL LATINA M
   423 LETRA DE CAPITAL LATINA A
   424 LETRA DE CAPITAL LATINA L
   425 LETRA DE CAPITAL LATINA L
   426 ESPAÇO 
   427 LETRA CAPITAL LATINA S
   428 LETRA CAPITAL LATINA E
   429 LETRA CAPITAL LATINA V
   430 LETRA CAPITAL LATINA E
   431 LETRA CAPITAL LATINA N
   432 ESPAÇO 
   433 LETRA CAPITAL LATINA E
   434 LETRA DE CAPITAL LATINA I
   435 LETRA CAPITAL LATINA G
   436 LETRA CAPITAL LATINA H
   437 LETRA CAPITAL LATINA T
   438 ESPAÇO 
   439 LETRA CAPITAL LATINA G
   440 LETRA CAPITAL LATINA R
   441 LETRA DE CAPITAL LATINA A
   442 LETRA CAPITAL LATINA V
   443 LETRA CAPITAL LATINA E
   444 ESPAÇO 
   445 LETRA CAPITAL LATINA L
   446 LETRA CAPITAL LATINA A
   447 LETRA CAPITAL LATINA T
   448 LETRA CAPITAL LATINA I
   449 LETRA CAPITAL LATINA N
   450 SPACE 
   451 LETRA CAPITAL LATINA N
   452 LETRA DE CAPITAL LATINA I
   453 LETRA CAPITAL LATINA N
   454 LETRA CAPITAL LATINA E
   455 ESPAÇO 
   456 LETRA CAPITAL LATINA F
   457 LETRA CAPITAL LATINA O
   458 LETRA CAPITAL LATINA U
   459 LETRA CAPITAL LATINA R
   460 ESPAÇO 
   461 LETRA CAPITAL LATINA P
   462 LETRA CAPITAL LATINA L
   463 LETRA CAPITAL LATINA U
   464 LETRA CAPITAL LATINA S
   465 ESPAÇO 
   466 LETRA CAPITAL LATINA F
   467 LETRA CAPITAL LATINA I
   468 LETRA CAPITAL LATINA V
   469 LETRA CAPITAL LATINA E
   470 ESPAÇO 
   471 LETRA DE CAPITAL LATINA L
   472 LETRA DE CAPITAL LATINA I
   473 LETRA CAPITAL LATINA N
   474 LETRA CAPITAL LATINA E
   475 ESPAÇO 
   476 LETRA CAPITAL LATINA L
   477 LETRA CAPITAL LATINA E
   478 LETRA CAPITAL LATINA F
   479 LETRA CAPITAL LATINA T
   480 SPACE 
   481 LETRA CAPITAL LATINA S
   482 LETRA CAPITAL LATINA T
   483 LETRA CAPITAL LATINA O
   484 LETRA CAPITAL LATINA P
   485 ESPAÇO 
   486 LETRA CAPITAL LATINA M
   487 LETRA CAPITAL LATINA A
   488 LETRA CAPITAL LATINA R
   489 LETRA CAPITAL LATINA K
   490 ESPAÇO 
   491 LETRA CAPITAL LATINA F
   492 LETRA CAPITAL LATINA U
   493 LETRA CAPITAL LATINA L
   494 LETRA CAPITAL LATINA L
   495 ESPAÇO 
   496 LETRA CAPITAL LATINA S
   497 LETRA CAPITAL LATINA I
   498 LETRA CAPITAL LATINA G
   499 LETRA EM CAPITAL LATINA N
   500 ESPAÇO 
   501 LETRA CAPITAL LATINA Z
   502 LETRA CAPITAL LATINA E
   503 LETRA CAPITAL LATINA R
   504 LETRA CAPITAL LATINA O
   505 ESPAÇO 
   506 LETRA CAPITAL LATINA T
   507 LETRA CAPITAL LATINA W
   508 LETRA CAPITAL LATINA O
   509 ESPAÇO 
   510 LETRA CAPITAL LATINA O
   511 LETRA EM CAPITAL LATINA N
   512 LETRA CAPITAL LATINA E
   513 ESPAÇO 
   514 LETRA CAPITAL LATINA L
   515 LETRA CAPITAL LATINA O
   516 LETRA CAPITAL LATINA W
   517 SPACE 
   518 LETRA CAPITAL LATINA S
   519 LETRA DE CAPITAL LATINA I
   520 LETRA CAPITAL LATINA X
   521 SPACE 
   522 LETRA DE CAPITAL LATINA A
   523 LETRA EM CAPITAL LATINA T
   524 MARCA DE COTAÇÃO 
   525 COMMA 
   526 LETRA PEQUENA LATINA W
   527 PARENTESE DIREITA 
   528 SEMICOLON 
   529 LETRA PEQUENA LATINA Y
   530 SINAIS DE IGUALDADE 
   531 LETRA PEQUENA LATINA W
   532 SUPORTE QUADRADO ESQUERDO 
   533 DÍGITO DOIS 
   534 SUPORTE QUADRADO DIREITO 
   535 SEMICOLON 
   536 LETRA PEQUENA L
   537 LETRA PEQUENA LATINA O
   538 LETRA PEQUENA L
   539 PARENTESE ESQUERDA 
   540 LETRA PEQUENA LATINA X
   541 SINAL DE IGUALDADE 
   542 LETRA PEQUENA LATINA W
   543 SUPORTE QUADRADO ESQUERDO 
   544 DIGIT ONE 
   545 SUPORTE QUADRADO DIREITO 
   546 SEMICOLON 
   547 LETRA PEQUENA LATINA I
   548 PLUS SIGN 
   549 PLUS SIGN 
   550 SINAL MENOS QUE 
   551 DÍGITO DOIS 
   552 DIGIT SEIS 
   553 SEMICOLON 
   554 LETRA PEQUENA LATINA X
   555 SINAL DE IGUALDADE 
   556 LETRA PEQUENA LATINA X
   557 MARCA DE COTAÇÃO 
   558 LETRA PEQUENA LATINA N
   559 LETRA CAPITAL LATINA W
   560 SUPORTE QUADRADO DIREITO 
   561 COMMA 
   562 MARCA DE COTAÇÃO 
   563 PARENTESE DIREITA 
   564 LETRA PEQUENA LATINA Y
   565 SINAL DE IGUALDADE 
   566 LETRA PEQUENA LATINA Y
   567 MARCA DE COTAÇÃO 
   568 LETRA PEQUENA LATINA N
   569 LETRA PEQUENA LATINA J
   570 SUPORTE QUADRADO DIREITO 
   571 COMMA 
   572 MARCA DE COTAÇÃO 
   573 SEMICOLON 
   574 LETRA PEQUENA LATINA F
   575 LETRA PEQUENA LATINA O
   576 LETRA PEQUENA LATINA R
   577 PARENTESE ESQUERDA 
   578 LETRA PEQUENA L
   579 LETRA PEQUENA LATINA P
   580 LETRA PEQUENA LATINA L
   581 LETRA PEQUENA LATINA I
   582 LETRA PEQUENA LATINA T
   583 PARENTESE ESQUERDA 
   584 LETRA PEQUENA LATINA X
   585 ESPAÇO 
   586 LETRA PEQUENA LATINA Y
   587 ESPAÇO 
   588 LETRA PEQUENA LATINA W
   589 ESQUERDO QUADRADO 
   590 DÍGITO TRÊS 
   591 SUPORTE QUADRADO DIREITO 
   592 COMMA 
   593 LETRA PEQUENA LATINA B
   594 COMMA 
   595 MARCA DE COTAÇÃO 
   596 COMMA 
   597 MARCA DE COTAÇÃO 
   598 PARENTESE DIREITA 
   599 SEMICOLON 
   600 LETRA PEQUENA LATINA J
   601 PLUS SIGN 
   602 PLUS SIGN 
   603 SINAL MENOS QUE 
   604 DIGIT ONE 
   605 DÍGITOS DOIS 
   606 DIGIT SEIS 
   607 SEMICOLON 
   608 LETRA CAPITAL LATINA F
   609 LETRA CAPITAL LATINA S
   610 SINAL DE IGUALDADE 
   611 LOW LINE 
   612 PARENTESE DIREITA 
   613 LETRA PEQUENA LATINA D
   614 SUPORTE QUADRADO ESQUERDO 
   615 LETRA PEQUENA L
   616 LETRA PEQUENA LATINA P
   617 LETRA PEQUENA L
   618 LETRA PEQUENA LATINA I
   619 LETRA PEQUENA LATINA N
   620 LETRA PEQUENA LATINA T
   621 LETRA PEQUENA LATINA F
   622 PARENTESE ESQUERDA 
   623 MARCA DE COTAÇÃO 
   624 SINAL DE PORCENTO 
   625 LETRA PEQUENA C LATINA
   626 MARCA DE COTAÇÃO 
   627 COMMA 
   628 LETRA PEQUENA LATINA J
   629 PARENTESE DIREITA 
   SUPORTE QUADRADO DIREITO 630 
   631 SINAL DE IGUALDADE 
   632 LETRA PEQUENA LATINA J
   633 SUPORTE CURLY DIREITO 
   634 SUPORTE CURLY ESQUERDO 
   635 LETRA PEQUENA LATINA F
   636 LETRA PEQUENA LATINA O
   637 LETRA PEQUENA L
   638 PARENTESE ESQUERDA 
   639 LETRA PEQUENA LATINA K
   640 SINAL DE IGUALDADE 
   641 DIGIT ZERO 
   642 SEMICOLON 
   643 LETRA PEQUENA LATINA K
   644 PLUS SIGN 
   645 PLUS SIGN 
   646 SINAL MENOS QUE 
   647 LETRA CAPITAL LATINA N
   648 LETRA CAPITAL LATINA F
   649 SEMICOLON 
   650 LETRA PEQUENA LATINA P
   651 LETRA PEQUENA L
   652 LETRA PEQUENA LATINA I
   653 LETRA PEQUENA LATINA N
   654 LETRA PEQUENA LATINA T
   655 ESPAÇO 
   656 LETRA PEQUENA LATINA I
   657 SINAL DE IGUALDADE 
   658 LOW LINE 
   659 PARENTESE DIREITA 
   660 LETRA PEQUENA LATINA W
   661 LETRA PEQUENA LATINA H
   662 LETRA PEQUENA LATINA I
   663 LETRA PEQUENA LATINA L
   664 LETRA PEQUENA LATINA E
   665 PARENTESE ESQUERDA 
   666 LETRA PEQUENA LATINA I
   667 PLUS SIGN 
   668 PLUS SIGN 
   669 SINAL MENOS QUE 
   670 LETRA PEQUENA L
   671 LETRA PEQUENA LATINA P
   672 LETRA PEQUENA LATINA L
   673 LETRA PEQUENA LATINA I
   674 LETRA PEQUENA LATINA T
   675 PARENTESE ESQUERDA 
   676 LETRA PEQUENA LATINA B
   677 SUPORTE QUADRADO ESQUERDO 
   678 LETRA PEQUENA LATINA D
   679 SUPORTE QUADRADO ESQUERDO 
   680 DOLLAR SIGN 
   681 LETRA PEQUENA LATINA K
   682 SUPORTE QUADRADO DIREITO 
   683 HYPHEN-MINUS 
   684 DÍGITO TRÊS 
   685 DIGIT ONE 
   686 SUPORTE QUADRADO DIREITO 
   687 COMMA 
   688 LETRA PEQUENA LATINA Q
   689 PARENTESE DIREITA 
   690 PARENTESE DIREITA 
   691 LETRA PEQUENA LATINA P
   692 LETRA PEQUENA L
   693 LETRA PEQUENA LATINA I
   694 LETRA PEQUENA LATINA N
   695 LETRA PEQUENA LATINA T
   696 LETRA PEQUENA L
   697 PARENTESE ESQUERDA 
   698 LETRA PEQUENA LATINA Z
   699 SINAL DE IGUALDADE 
   700 LETRA PEQUENA LATINA W
   SUPORTE QUADRADO ESQUERDO 701 
   702 LETRA PEQUENA LATINA D
   SUPORTE QUADRADO ESQUERDO 703 
   704 LETRA PEQUENA LATINA Q
   SUPORTE QUADRADO ESQUERDO 705 
   706 LETRA PEQUENA LATINA I
   707 SUPORTE QUADRADO DIREITO 
   708 SUPORTE QUADRADO DIREITO 
   709 HYPHEN-MINUS 
   710 DIGIT SIX 
   711 DIGIT NINE 
   712 SUPORTE QUADRADO DIREITO 
   713 PARENTESE DIREITA 
   714 MARCA DE COTAÇÃO 
   715 SPACE 
   716 MARCA DE COTAÇÃO 
   717 PARENTESE ESQUERDA 
   718 LETRA PEQUENA LATINA Z
   719 TILDE 
   720 SOLIDUS 
   721 LETRA EM CAPITAL LATINA T
   722 LETRA EM CAPITAL LATINA T
   723 SOLIDUS 
   724 MARCA DE PERGUNTA 
   725 LETRA PEQUENA LATINA T
   726 LETRA PEQUENA LATINA O
   727 LETRA PEQUENA LATINA U
   728 LETRA PEQUENA LATINA P
   729 LETRA PEQUENA LATINA P
   730 LETRA PEQUENA LATINA E
   731 LETRA PEQUENA L
   732 PARENTESE ESQUERDA 
   733 DOLLAR SIGN 
   734 LETRA PEQUENA LATINA K
   735 PARENTESE DIREITA 
   736 COLON 
   737 LOW LINE 
   738 PARENTESE DIREITA 
   739 SUPORTE CURLY DIREITO

Brincadeirinha; D

BEGIN{split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-THAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSAND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVERSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);x=w[1];for(y=w[2];C++<26;x=x"nW],")y=y"nj],";for(split(x y w[3],b,",");j++<126;FS=_)d[sprintf("%c",j)]=j}{for(k=0;k++<NF;print i=_)while(i++<split(b[d[$k]-31],q))printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)}

Funciona com stdin / stdout.

Mais "legível":

BEGIN{

  # This string (508 bytes) holds a representation of the character names in 
  # the right order, plus a list of the used words.

    split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,
    e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-T
    HAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSA
    ND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVE
    RSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON
    TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE
     LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);

  # Since the letters each appear 26 times I construct that part at runtime.
  # The array b will hold the coded combinations of which words need to
  # be printed for each input character.

    x=w[1];
    for(y=w[2];C++<26;x=x"nW],")
        y=y"nj],";

  # The array d is an ASCIICodeFromChar function replacement.
  # I set the field separator to empty, so each character of the input is
  # an input field. That's why using a BEGIN part was mandatory.

    for(split(x y w[3],b,",");j++<126;FS=_)
        d[sprintf("%c",j)]=j
}

  # Here I go through the element of b that matches the input and print
  # the requested words, using the input to produce a capital letter if
  # needed. I excluded these from the word list to save another 26 bytes

{
    for(k=0;k++<NF;print i=_)
        while(i++<split(b[d[$k]-31],q))
            printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)
}

5

C ++ 11, 739 bytes

#include<iostream>
#define D,"DIGIT "
#define G" SIGN",
int main(){std::string a=" BRACKET",s="SQUARE"+a,c="CURLY"+a,t="TION MARK",p="PARENTHESIS",l="LEFT ",r="RIGHT ",x="LATIN ",y="L LETTER ",z[]{"SPACE","EXCLAMA"+t,"QUOTA"+t,"NUMBER"G"DOLLAR"G"PERCENT"G"AMPERSAND","APOSTROPHE",l+p,r+p,"ASTERISK","PLUS"G"COMMA","HYPHEN-MINUS","FULL STOP","SOLIDUS"D"ZERO"D"ONE"D"TWO"D"THREE"D"FOUR"D"FIVE"D"SIX"D"SEVEN"D"EIGHT"D"NINE","COLON","SEMICOLON","LESS-THAN"G"EQUALS"G"GREATER-THAN"G"QUES"+t,"COMMERCIAL AT",l+s,"REVERSE SOLIDUS",r+s,"CIRCUMFLEX ACCENT","LOW LINE","GRAVE ACCENT",l+c,"VERTICAL LINE",r+c,"TILDE"};getline(std::cin,s);for(char c:s)std::cout<<(c<65?z[c-32]:c<91?x+"CAPITA"+y+c:(c-=32,c<65?z[c-26]:c<91?x+"SMAL"+y+c:z[c-52]))+"\n";}

Baseado na solução da sweerpotato, mas modificado fortemente.


Bem feito: ~)!
Sweerpotato

5

C, 644 656

Programa completo, leitura da entrada padrão

Teste on Ideone

Esta é uma portabilidade da minha resposta JavaScript para C. A linguagem C é boa para manipular caracteres únicos como números (não é necessário .toUpperCasee assim por diante ), mas é mais fraca na manipulação de strings.

char*s,*p,*q,b[999],*d=b+99,c,*l[129];
main(k){for(k=32,p="/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
c=*p;p++)c>96?q?(p=q,q=0):(q=p,p=strchr("aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz",c)):c-47?*d++=c:(*d++=0,l[k++]=d);
for(;~(k=getchar());puts(k<65?l[k]:(k&31)<27?b:l[k<97?k-26:k-52]))sprintf(b,"LATIN %s LETTER %c",k<91?"CAPITAL":"SMALL",k&95);}

Menos golfe

char *all = "/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
char *subs = "aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz";

main(int k)
{
    char c, *s, *p, *q=0, 
    b[999], // work buffer
    *d = b+99, // first part of buffer is used later
    *l[129]; // characters descriptions (used 32 to 126)

    // Uncompress the descriptions of all char except letters
    for(k = 32, p = all; c = *p; ++p)
    {
       c >= 'a' // substitution word are marked as lowercase letters
        ? q  
           ? (p = q, q = 0)
           : (q = p, p = strchr(subs, c))
        : c != '/'
           ? *d++ = c 
           : (*d++ = 0, l[k++] = d); // end char description
    }
    // Scan the input string and print each char description
    for(; (k=getchar()) != -1; )
    {
       sprintf(b,"LATIN %s LETTER %c", k<91 ? "CAPITAL":"SMALL", k & 95);
       puts( k<65 ? l[k] : k<91 ? b : k<97 ? l[k-26] : k<123 ? b : l[k-52]);
    }
}

4

Lisp comum (SBCL), 52 79

(map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))

Isso é interno e depende da implementação; portanto, você pode ignorá-lo ao escolher a resposta aceita. Infelizmente, isso não é suficiente para vencer o Python . A versão atualizada está de acordo com a saída esperada (eu tenho que substituir os sublinhados por espaços).

Exemplo

CL-USER> (map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))
"(λ(r)(* 2 ᴨ r))"
LEFT PARENTHESIS
GREEK SMALL LETTER LAMDA
LEFT PARENTHESIS
LATIN SMALL LETTER R
RIGHT PARENTHESIS
LEFT PARENTHESIS
ASTERISK
SPACE
DIGIT TWO
SPACE
GREEK LETTER SMALL CAPITAL PI
SPACE
LATIN SMALL LETTER R
RIGHT PARENTHESIS
RIGHT PARENTHESIS


4

C ++ 14, 1043 1000 998 996 972 bytes

Solução grotesca em C ++ 14:

#include<iostream>
#include<map>
#define b cout
#define d string
#define e },{
using namespace std;char l='\n';d s[]{"DIGIT ","LATIN CAPITAL LETTER ","LATIN SMALL LETTER "};map<char, d> m{{' ',"SPACE"e'!',"EXCLAMATION MARK"e'\"',"QUOTATION MARK"e'#',"NUMBER SIGN"e'$',"DOLLAR SIGN"e'%',"PERCENT SIGN"e'&',"AMPERSAND"e'\'',"APOSTROPHE"e'(',"LEFT PARENTHESIS"e')',"RIGHT PARENTHESIS"e'*',"ASTERISK"e'+',"PLUS SIGN"e',',"COMMA"e'-',"HYPHEN-MINUS"e'.',"FULL STOP"e'/',"SOLIDUS"e':',"COLON"e';',"SEMICOLON"e'<',"LESS-THAN SIGN"e'=',"EQUALS SIGN"e'>',"GREATER-THAN SIGN"e'?',"QUESTION MARK"e'@',"COMMERCIAL AT"e'[',"LEFT SQUARE BRACKET"e'\\',"REVERSE SOLIDUS"e']',"RIGHT SQUARE BRACKET"e'^',"CIRCUMFLEX ACCENT"e'_',"LOW LINE"e'`',"GRAVE ACCENT"e'{',"LEFT CURLY BRACKET"e'|',"VERTICAL LINE"e'}',"RIGHT CURLY BRACKET"e'~',"TILDE"}};int main(){d str;getline(cin,str);for(char c:str){islower(c)?b<<s[2]<<(char)(c-32):isupper(c)?b<<s[1]<<c:isdigit(c)?b<<*s<<c:b<<m.at(c);b<<l;}}

Agradecimentos a kirbyfan64sos por jogar fora dois bytes


Você pode fazer em *svez de s[0]?
Kirbyfan64sos

Claro que pode! Totalmente perdi isso
sweerpotato

3

CJam, 517

l{i32-["SPACE""EXCLAMA""TION MARK":T+"QUOTA"T+"NUMBER DOLLAR PERCENT"{S/" SIGN"am*~}:H~"AMPERSAND""APOSTROPHE""LEFT PARENTHESIS":L"RIGHT ":R1$5>+"ASTERISK""PLUS"H"COMMA""HYPHEN-MINUS""FULL STOP""SOLIDUS":D"DIGIT "a"ZERO ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE"S/m*~"COLON""SEMI"1$+"LESS-THAN EQUALS GREATER-THAN"H"QUES"T+"COMMERCIAL AT""CAPITA"{["LATIN "\"L LETTER "]a'[,65>m*~L5<}:Z~"SQUARE BRACKET":Q+"REVERSE "D+RQ+"CIRCUMFLEX ACCENT""LOW LINE""GRAVE"2$A>+"SMAL"Z"CURLY"33$B>+:C+"VERTICAL LINE"RC+"TILDE"]=N}/

Versão online

Eu tentei soluções diferentes, mas simplesmente armazenar todos os nomes em uma enorme variedade parece ser mais eficiente.

A propósito, este é o meu primeiro programa CJam real.


3

C ++ 14 716 706 704

#include<iostream>
char*q,x,b[584],*t=b,a[]=R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",*s=a;int c,z,l='{';int main(){for(;x=*s++;)if(z=x-32,x>96)*t++=x<l?z:"- "[x%l];else for(c=z*95+*s++-32,q=t-c/13,x=3+c%13;x--;)*t++=*q++;while(std::cin.get(x)){for(s=b,z=0,c=x<65?x-32:x<91?z=33:x<97?x-57:x<l?z=40:x-82;c--;)while(*s++);auto&o=std::cout<<s;(z?o.put(x&~32):o)<<"\n";}}

Versão ao vivo .

Com algum espaço em branco:

#include <iostream>

// a is compressed using an LZ like compression scheme
char *q, x, b[584],
    *t = b,
    a[] =
        R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",
    *s = a;

int c, z, l = '{';

int main() {
    // Decompress from a into b
    for (; x = *s++;)
        if (z = x - 32, x > 96)
            *t++ = x < l ? z : "- "[x % l];
        else
            for (c = z * 95 + *s++ - 32, q = t - c / 13, x = 3 + c % 13; x--;) *t++ = *q++;

    // Process input a char at a time, performing a lookup into b for the c'th null separated string
    while (std::cin.get(x)) {
        for (s = b, z = 0,
            c = x < 65 ? x - 32 : x < 91 ? z = 33 : x < 97 ? x - 57 : x < l ? z = 40 : x - 82;
             c--;)
            while (*s++)
                ;
        auto& o = std::cout << s;
        (z ? o.put(x & ~32) : o) << "\n";
    }
}

A cadeia compactada adescompacta para:

espaço} exclamação | marca} cotação | marca} número | sinal} dólar | sinal} por cento | sinal} e comercial} apóstrofo} esquerda | parênteses} direita | parênteses} asterisco} mais | sinal} vírgula} hífen {menos} completo | parada} solidus} dígito | zero} dígito | um} dígito | dois} dígito | três} dígito | quatro} dígito | cinco} dígito | seis} dígito | sete} dígito | oito} dígito | oito} dígito | nove} dois pontos} ponto e vírgula} menos {que | sinal} é igual a | sinal} maior {que | sinal} ponto de interrogação} comercial | em} latim | capital | letra |} esquerda | quadrado | suporte} reverso | solidus} direito | quadrado | suporte} circunflexo | sotaque} baixo | linha } grave | sotaque} latim | pequeno | letra |} esquerda | encaracolada | suporte} vertical | linha} direita | encaracolada | suporte} til

E durante a descompressão }é substituído por \0, |por (espaço) e {por -e letras minúsculas são convertidas em maiúsculas.

A sequência é compactada no estilo LZ como um [a-~]deslocamento / comprimento literal ou codificado com dois caracteres para uma correspondência anterior na sequência.


3

Clojure, 56 bytes

(doseq[c(read-line)](println(Character/getName(int c))))

Inspirado pela resposta de @ Peter. Usa o Clojure para a interoperabilidade Java.


3

Perl - 894 bytes

Amorosamente trabalhada à mão. Golfe pela primeira vez em Perl, para que todas as dicas sejam apreciadas.

$_=$ARGV[0];s/(.)/$1\n/g;s/([A-Z])/& CAPITAL' $1/g;s/([a-z])/& SMALL' \U$1/g;s/,/COMMA/g;s/& /LATIN /g;s/' / LETT, /g;s/&/AMP,SAND/g;s/'/APOSTROPHE/g;s/ \n/SPACE\n/g;s/\*/AST,ISK/g;s/-/HYPHEN-MINUS/g;s/\./FULL STOP/g;s/@/COMM,CIAL AT/g;s/~/TILDE/g;s/:/&/g;s/;/SEMI&/g;s/&/COLON/g;s/\|/V,TICAL&/g;s/_/LOW&/g;s/&/ LINE/g;s/\^/CIRCUMFLEX&/g;s/`/GRAVE&/g;s/&/ ACCENT/g;s/\//&/g;s/\\/REV,SE &/g;s/&/SOLIDUS/g;s/!/!&/g;s/"/"&/g;s/\?/?&/g;s/!/EXCLAMA/g;s/"/QUOTA/g;s/\?/QUES/g;s/&/TION MARK/g;s/#/NUMB,&/g;s/\$/DOLLAR&/g;s/%/P,CENT&/g;s/\+/PLUS&/g;s/</LESS-THAN&/g;s/=/EQUALS&/g;s/>/GREAT,-THAN&/g;s/&/ SIGN/g;s/\(/<&/g;s/\)/>&/g;s/&/ PARENTHESIS/g;s/\[/<&/g;s/\]/>&/g;s/&/ SQUARE'/g;s/{/<&/g;s/}/>&/g;s/&/ CURLY'/g;s/'/ BRACKET/g;s/</LEFT/g;s/>/RIGHT/g;s/0/&Z,O/g;s/1/&ONE/g;s/2/&TWO/g;s/3/&THREE/g;s/4/&FOUR/g;s/5/&FIVE/g;s/6/&SIX/g;s/7/&SEVEN/g;s/8/&EIGHT/g;s/9/&NINE/g;s/&/DIGIT /g;s/,/ER/g;print;

1

Fator, 58 bytes

[ readln [ char>name "-"" " replace >upper print ] each ] 

Bem simples; faz exatamente a mesma coisa que as respostas Java e Perl 6.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.