Ascii имя значения

0

Есть ли способ получить имя значения ascii.

например

0x08 или просто 8 - это обратное пространство

могу ли я получить имя "Backspace" в c или c++?

  • 1
    наберите man ascii , нажмите ввод
  • 0
    Или, если у вас нет man , вы могли бы Google "ASCII" и найти что-то вроде этого
Теги:
ascii

4 ответа

1

Короче говоря, нет. Однако легко работал.

Если ваш код ASCII <32, вот таблица стандартных аббревиатур символов ASCII, которые вы можете использовать:

char *ascii_cc[] = {
  "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", 
  "BS",  "HT",  "LF",  "VT",  "FF",  "CR",  "SO",  "SI",
  "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
  "CAN", "EM",  "SUB", "ESC", "FS",  "GS",  "RS",  "US" };

Затем просто проиндексируйте этот массив строк по значению интересующего вас char. Например,

char c = 8; /* backspace */
printf("ASCII control code = %s\n", ascii_cc[c]);
0

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

0

man ASCII может помочь:

#include <stdio.h>
#include <string.h>

FILE *popen(const char *command, const char *mode);
int pclose(FILE *stream);

int main(void)
{
    FILE *cmd = popen("man ASCII", "r");
    char *key = "010";
    char result[128];

    while (fgets(result, sizeof(result), cmd) != NULL)
        if (strstr(result, key))
            printf("key %s: %s", key, result);
    pclose(cmd);
    return 0;
}
0

Их всего 128 (последние 128 отличаются, в зависимости от того, какую кодовую страницу вы используете), почему бы вам не создать массив const? Если вы сократите свои данные до непечатаемых символов, количество элементов упадет до 32.

Вы можете найти полный список в Википедии.

Вот первые 32 значения:

Dec    Abbr    Name
0      NUL     Null character
1      SOH     Start of Header
2      STX     Start of Text
3      ETX     End of Text
4      EOT     End of Transmission
5      ENQ     Enquiry
6      ACK     Acknowledgment
7      BEL     Bell
8      BS      Backspace[d][e]
9      HT      Horizontal Tab[f]
10     LF      Line feed
11     VT      Vertical Tab
12     FF      Form feed
13     CR      Carriage return[g]
14     SO      Shift Out
15     SI      Shift In
16     DLE     Data Link Escape
17     DC1     Device Control 1 (oft. XON)
18     DC2     Device Control 2
19     DC3     Device Control 3 (oft. XOFF)
20     DC4     Device Control 4
21     NAK     Negative Acknowledgement
22     SYN     Synchronous idle
23     ETB     End of Transmission Block
24     CAN     Cancel
25     EM      End of Medium
26     SUB     Substitute
27     ESC     Escape[i]
28     FS      File Separator
29     GS      Group Separator
30     RS      Record Separator
31     US      Unit Separator

Ещё вопросы

Сообщество Overcoder
Наверх
Меню