Stampa i nomi dei personaggi


42

Ogni personaggio Unicode ha un nome, come "LATIN CAPITAL LETTER A". Un nome di carattere Unicode può contenere solo lettere maiuscole, spazi bianchi e il segno meno.

Scrivi un programma che legge un testo e genera i nomi di ciascun carattere su una nuova riga. Ad esempio, se l'input fosse "Hello, World!", L'output sarebbe

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
  • L'input dovrebbe provenire da un file o dall'input dell'utente, non solo una stringa nel codice.
  • L'output deve essere scritto su un file o stdout o stampato sullo schermo.
  • Internet e le librerie esterne non sono consentite, tutti i dati necessari dovrebbero essere nel codice.
  • Supponiamo che l'input contenga solo caratteri ASCII stampabili nell'intervallo di codice latino di base 32-126. È possibile ignorare una nuova riga finale.
  • Sono ammessi tutti i linguaggi di programmazione. Vince il codice più breve in byte.

I nomi dei personaggi Unicode ufficiali sono disponibili qui . Altre fonti:

Questa è la mia prima domanda, quindi apprezzerei qualsiasi suggerimento se questo può essere migliorato.

Ai fini di questa sfida, l'elenco seguente deve essere normativo.

    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
Ciao, sono andato avanti e ho modificato la tua domanda, torna indietro se non sei d'accordo. Non hai bisogno di più fonti di informazione, hai bisogno di una versione normativa nella domanda per evitare problemi con discrepanze. Ho scelto ssec.wisc.edu/~tomw/java/unicode.html#x0000 perché era il più conciso. A parte questo, +1
Level River St

Grazie per la modifica di @steveverrill, ero troppo pigro per farlo da solo.
io e il mio gatto,

Apparentemente i valori sono disponibili come parte di Windows, in C:\Windows\System32\getuname.dll. Conta anche come una "libreria esterna", anche se integrata in Windows?
lc.

6
Ho appena imparato la parola solidus.
Luca,

Risposte:


31

Java - 113 byte (152 se letto dalla riga di comando)

Modifica: rimosse parentesi graffe inutili.

Edit2: rimosso variabile non necessaria.

Edit3: Invece di Character.getName () uso c.getName ().

Edit4: passaggio della stringa come argomento della riga di comando.

Con argomento da riga di comando (113 byte):

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

Con riga di lettura (152 byte):

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 ha tutto il necessario. Sono sicuro che questo potrebbe essere risolto.


7
Dannazione! Un incorporato! Per rendere questa una sfida interessante, la considero una non conformità con "tutti i dati necessari dovrebbero essere nel codice". Molto intelligente, però.
Level River St,

1
@steveverrill Oh beh :). Ho visto un'altra sfida in cui lisp comune ha fatto qualcosa di simile (contando da uno a 100 se ricordo bene).
Peter Lenkefi,

6
Caspita, questa volta Java ha la possibilità di battere molte lingue del golf.
vsz,

4
Soluzione alternativa Java 8: x[0].chars().forEach(i->System.out.println(Character.getName(i)));salva 2 caratteri rispetto alla soluzione dell'argomento della riga di comando (sostituendo il for-loop).
hjk,

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

18

Python 3, 56 byte

Utilizza una funzione integrata unicodedata.name(), quindi potrebbe non essere competente. La risposta di Java lo ha fatto allo stesso modo, quindi ho pensato che valesse la pena pubblicare.

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

Volevo anche pubblicarne uno in Python ma la mia risposta java era abbastanza economica :).
Peter Lenkefi,

1
Sicuramente for i in input():print(unicodedata.name(i))è più corto?
Eric

1
@Eric No. Devi import unicodedata, quindi è più lungo .
mbomb007,

17

JavaScript (ES6) 594 618 626

Nota Potrei salvare ~ 30 byte comprimendo la stringa lunga con atob / btoa, ma il carattere utf8 sopra '~' non è ben accettato dall'editor di post di Stack Exchange. Preferisco invece tenere uno snippet in esecuzione.

Modifica 8 caratteri salvati grazie a @Ypnypn

Compressione evidente di parole ripetute. La nuova riga all'interno dei backtick è significativa e contata.

Prova a eseguire lo snippet in 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 byte 62

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

Modifica: per il commento di @flodels, devo prima leggerlo dalla connessione, quindi ho dovuto aggiungere scan. Questa è probabilmente anche una soluzione non competente secondo tutte le regole.

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

Puoi anche avvolgerlo in una funzione per un uso più conveniente

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

Quindi, l'uso è giusto

UNI("Hello, World!")

1
Il conteggio dei byte è corretto :)
Decadimento beta

1
E benvenuto in PPCG! : D
Decadimento beta

Buono per te avere un built-in per l'attività, ma l'output non è quello che è richiesto - tabella a 4 colonne invece di 1 tabella a colonne. Penso che dovresti aggiungere un po 'di core per ottenere l'output corretto
edc65

@ edc65 così facile da risolvere, l'ho appena considerato un bonus.
David Arenburg,

@ edc65 ha risolto il problema.
David Arenburg,

7

Perl 6 , 21 byte

Non ho visto una regola specificamente contro l'utilizzo di un metodo integrato per ottenere i nomi unicode.
(Anche la risposta Java che è la più votata attualmente fa lo stesso)

.say for get.uninames

1
Perl 6 è strano. Lo adoro, però.
gatto

6

Perl (+ coreutils) , 563 byte

Nota : il seguito non funzionerà così com'è, deve essere riprodotto dal xxddump sottostante! Ho provato a far passare i dati grezzi direttamente zcat, ma non ci sono riuscito. Potrei semplicemente usare un modulo Perl Gzip nativo, ma sarà sicuramente domani!

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                                  ...

Per riprodurre il file, eseguire:

xxd -r > 57413.pl

incollare il dump esadecimale e premere Enter, quindi Ctrl+ D.

Correre come:

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

Versione perl pura precedente, 893 byte

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

Sto solo scherzando; 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):_)}

Funziona con stdin / stdout.

Più "leggibile":

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 byte

#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";}

Basato sulla soluzione di sweerpotato, ma fortemente modificato.


Ben fatto: ~)!
sweerpotato,

5

C, 644 656

Programma completo, lettura da input standard

Test su Ideone

Questo è il porting della mia risposta JavaScript a C. Il linguaggio C è bravo a manipolare singoli caratteri come numeri (non è necessario .toUpperCasee simili), ma è più debole nella manipolazione delle stringhe.

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);}

Meno golf

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

Common Lisp (SBCL), 52 79

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

Questo è integrato e dipende dall'implementazione, quindi potresti voler ignorarlo quando scegli la risposta accettata. Purtroppo non è abbastanza per battere Python . La versione aggiornata è conforme all'output previsto (devo sostituire i caratteri di sottolineatura con spazi).

Esempio

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 byte

Soluzione grottesca in 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;}}

Grazie a kirbyfan64sos per giocare a golf da due byte


Puoi fare *sinvece di s[0]?
kirbyfan64sos,

Certo che si può! Totalmente perso quello
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}/

Versione online

Ho provato diverse soluzioni, ma la semplice memorizzazione di tutti i nomi in un enorme array sembra molto efficiente.

Questo è il mio primo vero programma CJam tra l'altro.


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";}}

Versione live .

Con alcuni spazi bianchi:

#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";
    }
}

La stringa compressa si adecomprime in:

spazio} esclamativo | marchio} citazione | marchio} numero | segno} dollaro | segno} cento | segno} commerciale} apostrofo} left | parentesi} right | parentesi} asterisco} plus | segno} virgola} trattino {meno} pieno | fermata} solidus} cifre | a zero} cifre | uno} cifre | due} cifre | tre} cifre | quattro} cifre | cinque} cifre | sei} cifre | sette} cifre | otto} cifre | nove} colon} virgola} in meno {di | segno} è uguale a | segno} maggiore {di | segno} domanda | marchio} commerciale | at} latin | capitale | lettera |} left | piazza | staffa} invertire | Solidus} right | piazza | staffa} circumflex | accento} basso | linea } tomba | accento} latin | piccolo | lettera |} left | ricci | staffa} verticale | linea} right | ricci | staffa} tilde

E durante la decompressione }viene sostituito con \0, |con (spazio) e {con -e le lettere minuscole vengono convertite in maiuscolo.

La stringa è in stile LZ compresso come [a-~]offset / lunghezza con codifica letterale o a due caratteri rispetto a una corrispondenza precedente nella stringa.


3

Clojure, 56 byte

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

Ispirato dalla risposta di @ peter. Utilizza Clojure per l'interoperabilità Java.


3

Perl - 894 byte

Realizzato con cura a mano. Giocare a golf per la prima volta in Perl, quindi ogni consiglio è apprezzato.

$_=$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

Fattore, 58 byte

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

Abbastanza semplice; fa esattamente la stessa cosa delle risposte Java e Perl 6.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.