Напечатайте имена персонажей


42

У каждого символа Юникода есть имя, например, «LATIN CAPITAL LETTER A». Имя символа Unicode может содержать только заглавные буквы, пробелы и знак минус.

Напишите программу, которая читает текст и выводит имена каждого символа в новой строке. Например, если на входе было «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
  • Входные данные должны поступать из файла или из пользовательского ввода, а не просто из строки в коде.
  • Вывод должен быть записан в файл или стандартный вывод или распечатан на экран.
  • Интернет и внешние библиотеки не допускаются, все необходимые данные должны быть в коде.
  • Предположим, что входные данные содержат только печатаемые символы ASCII в диапазоне базового латинского кода 32-126. Вы можете игнорировать завершающий перевод строки.
  • Все языки программирования разрешены. Самый короткий код в байтах побеждает.

Официальные имена персонажей Unicode можно найти здесь . Другие источники:

Это мой первый вопрос, поэтому я буду признателен за любые предложения, если это можно улучшить.

Для целей данного вызова приведенный ниже список должен быть нормативным.

    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
Привет, я отредактировал твой вопрос, откатись, если ты не согласен. Вам не нужно больше источников информации, вам нужна одна нормативная версия в вопросе, чтобы избежать проблем с расхождениями. Я выбрал ssec.wisc.edu/~tomw/java/unicode.html#x0000, так как он был наиболее кратким. Кроме этого, +1
Уровень Река Сент

Спасибо за правку @steveverrill, мне было лень делать это самому.
я и мой кот

Видимо значения доступны как часть Windows, в C:\Windows\System32\getuname.dll. Это также считается «внешней библиотекой», даже если она встроена в Windows?
жк.

6
Я только что выучил слово солидус.
Люк

Ответы:


31

Java - 113 байт (152 при чтении из командной строки)

Редактировать: удалены ненужные фигурные скобки.

Edit2: удалена ненужная переменная.

Edit3: вместо Character.getName () я использую c.getName ().

Edit4: передача строки в качестве аргумента командной строки.

С аргументом командной строки (113 байт):

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

С строкой чтения (152 байта):

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 есть все необходимое. Я уверен, что это может быть в гольфе.


7
Черт! Встроенный! Чтобы сделать это интересной задачей, я бы посчитал, что это не соответствует «все необходимые данные должны быть в коде». Очень умно, хотя.
Уровень Река

1
@steveverrill Ну хорошо :). Я видел еще одну проблему, когда обычный lisp делал нечто подобное (считая от одного до 100, если я правильно помню).
Петр Ленкефи

6
Вау, на этот раз у Java есть шанс обыграть много языков игры в гольф.
вс

4
Альтернативное решение Java 8: x[0].chars().forEach(i->System.out.println(Character.getName(i)));это экономит 2 символа по сравнению с решением аргумента командной строки (заменяя for-loop).
HJK

3
Или, может бытьx[0].chars().map(' '::getName).forEach(System.out::println);
Эрик

18

Python 3, 56 байт

Использует встроенную функцию unicodedata.name(), поэтому она может быть некомпетентной. Java-ответ сделал это аналогичным образом, поэтому я подумал, что это, по крайней мере, стоит опубликовать.

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

Я также хотел опубликовать один на Python, но мой ответ на Java был достаточно обманчив :).
Петр Ленкефи

1
Неужели for i in input():print(unicodedata.name(i))короче?
Эрик

1
@ Эрик Нет. Ты должен import unicodedata, так что это дольше .
mbomb007

17

JavaScript (ES6) 594 618 626

Заметьте, что я могу сэкономить ~ 30 байт, сжимая длинную строку с помощью atob / btoa, но символ utf8 над '~' не очень хорошо воспринимается пост-редактором Stack Exchange. Я предпочитаю вместо этого оставить бегущий фрагмент.

Редактировать 8 символов, сохраненных thx @Ypnypn

Очевидное сжатие повторяющихся слов. Новая строка внутри обратных кавычек значительна и считается.

Попробуйте запустить фрагмент в 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 байта 62

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

Изменить: за комментарий @flodels, мне нужно сначала прочитать его по соединению, поэтому пришлось добавить scan. Это также, вероятно, некомпетентное решение по всем правилам.

использование

> 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

Вы также можете заключить его в функцию для более удобного использования

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

Тогда использование просто

UNI("Hello, World!")

1
Ваш счетчик байтов правильный :)
Beta Decay

1
И добро пожаловать в PPCG! : D
Бета-распад

Хорошо, если у вас есть встроенная задача, но результат не тот, который запрашивается - таблица с 4 столбцами вместо таблицы с 1 столбцом. Я думаю, что вы должны добавить ядро, чтобы получить правильный вывод
edc65

@ edc65 это легко исправить, я просто подумал об этом как о бонусе.
Дэвид Аренбург

@ edc65 исправил это.
Дэвид Аренбург

7

Perl 6 , 21 байт

Я не видел правила специально против использования встроенного метода для получения имен Unicode.
(Также ответ Java, который является самым высоко проголосовавшим, делает то же самое)

.say for get.uninames

1
Perl 6 странный. Я люблю это, хотя.
кот

6

Perl (+ coreutils) , 563 байта

Примечание : ниже не будет работать как есть, его необходимо воспроизвести из xxdдампа ниже! Я пытался передать необработанные данные напрямую zcat, но это не удалось. Я мог бы просто использовать собственный модуль Perl Gzip, но это точно будет завтра!

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

Чтобы воспроизвести файл, выполните:

xxd -r > 57413.pl

вставьте hexdump и нажмите Enter, затем Ctrl+ D.

Беги как:

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

Предыдущая версия на чистом Perl, 893 байта

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

Шучу; 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):_)}

Работает с stdin / stdout.

Более "читаемый":

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 байт

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

Основано на решении свирпотато, но сильно модифицировано.


Красиво сделано: ~)!
Sweerpotato

5

С 644 656

Полная программа, чтение со стандартного ввода

Тест на идеоне

Это перенос моего JavaScript-ответа на C. Язык C хорош для манипулирования одиночными символами в виде чисел (без необходимости .toUpperCaseи т. П.), Но он слабее в работе со строками.

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

Меньше гольфа

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

Это встроенный и зависящий от реализации, поэтому вы можете игнорировать его при выборе принятого ответа. К сожалению, этого недостаточно, чтобы победить Python . Обновленная версия соответствует ожидаемому результату (я должен заменить подчеркивания пробелами).

пример

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

Пиф, 41

$from unicodedata import name as neg$Vz_N

Использует то же встроенное, что и в ответе Python от mbomb007 . Обратите внимание, что это не может быть выполнено онлайн, потому что $оператор небезопасен.


4

C ++ 14, 1043 1000 998 996 972 байта

Гротескное решение в 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;}}

Благодаря kirbyfan64sos для игры в гольф от двух байтов


Вы можете сделать *sвместо s[0]?
kirbyfan64sos

Конечно можно! Совершенно пропустил это
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}/

Онлайн версия

Я пробовал разные решения, но простое хранение всех имен в огромном массиве кажется наиболее эффективным.

Кстати, это моя первая настоящая программа CJam.


3

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

Живая версия .

С некоторыми пробелами:

#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распаковывается в:

пробел} восклицательный | знак} котировка | знак} номер | знак} доллар | знак} процентов | знак} амперсанд} апостроф} влево | скобка} право | скобка} звездочка} плюс | знак} запятой} Дефис {минус} полная | остановка} солидус} цифра | ноль} цифра | один} цифра | два} цифра | три} цифры | четыре} цифры | пять} цифры | шесть} цифры | семь} цифры | восемь} цифры | девять} двоеточие} точка с запятой} меньше {чем | знак} равен | знак} больше {чем | знак} вопрос | знак} коммерческой | в} латинская | капитал | буква |} слева | площадь | скобка} обратной | солидус} право | площадь | скобка} огибающая | акцент} низкая | линия } могила | акцент} латинское | маленькое | письмо |} влево | фигурная | скобки} вертикальная | линия} право | фигурная | скобки} тильда

И во время декомпрессии }заменяется на \0,| с (пробел) и {с -и строчные буквы преобразуются в верхний регистр.

Строка представляет собой сжатый стиль LZ в виде литерала [a-~]или двухсимвольного кодированного смещения / длины для соответствия ранее в строке.


3

Clojure, 56 байт

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

Вдохновленный ответом @ peter. Использует Clojure для взаимодействия Java.


3

Perl - 894 байта

С любовью созданный вручную. Первый раз игра в гольф в Perl, поэтому любые советы приветствуются.

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

Фактор, 58 байт

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

Довольно просто; делает то же самое, что и ответы на Java и Perl 6.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.