Как найти код символа в символ

Есть ли функцию, с помощью которой можно получить символ по коду ASCII, а также функция получения кода ASCII по символу?
Например:
А->65;
90->Z.

задан 10 авг 2011 в 19:04

Yaroslav Schubert's user avatar

Yaroslav SchubertYaroslav Schubert

1,0754 золотых знака14 серебряных знаков35 бронзовых знаков

5

Код

#include <iostream>

int main(void)
{
  char c;
  std::cout<<"enter symbol:"<<std::endl;
  std::cin>>c;
  int code;
  code = c - 'A';
  std::cout<<"code of symbol is "<<(int)c<<
       " and difference with 'A' is "   <<code<<std::endl;
  // в предыдущей строчке приведение к int нужно, иначе не сработает ООП-магия,
  // т.к. cout - это очень хитрый объект, определяющий по типу выводимого
  // выражения как его отобразить на экране
  return 1;
}

Прекрасно компилируется и работает

gaal@linux-lybs:~> g++ 1.cpp 
gaal@linux-lybs:~> ./a.out 
enter symbol:
A
code of symbol is 65 and difference with 'A' is 0
gaal@linux-lybs:~> ./a.out 
enter symbol:
B
code of symbol is 66 and difference with 'A' is 1

ответ дан 10 авг 2011 в 21:07

gecube's user avatar

gecubegecube

14k33 серебряных знака46 бронзовых знаков

1

Судя по тегу у вас Си)
Преобразование символа в ASCII:

// C, with C type-casting
char cMyCharacter = 'A';
int iMyAsciiValue = (int)cMyCharacter;

// C++, with C++ type-casting
char cMyCharacter = 'A';
int iMyAsciiValue = static_cast<int>(cMyCharacter);

Преобразование кода в символ:

int asciiVal = 65;
char asciiChar = static_cast<char>(asciiVal);

или

char asciiChar = asciiVal;

gecube's user avatar

gecube

14k33 серебряных знака46 бронзовых знаков

ответ дан 10 авг 2011 в 20:59

Tanya's user avatar

TanyaTanya

4623 серебряных знака9 бронзовых знаков

1

Функций таких нет – есть функции приведения типов.

#include <iostream>

using namespace std;

int main()
{
    char c;
    int ascii;
    cout << "Введите символ: ";
    cin >> c;
    cout << "ASCII-код: " << (int)c << endl;
    cout << "Введите ASCII-код символа: ";
    cin >> ascii;
    cout << "Cимвол: " << (char)ascii << endl;
    return 0;
}

gecube's user avatar

gecube

14k33 серебряных знака46 бронзовых знаков

ответ дан 23 авг 2011 в 17:34

vlad071096's user avatar

vlad071096vlad071096

1011 серебряный знак8 бронзовых знаков

Содержание:

1.       Функция «КодСимвола()» в системе кодировки Unicode

2.       Код символа в кодировке СР1251

3.       Код в ОЕМ

Приветствую, коллеги! В данной статье речь пойдёт о том, как получать коды символов в 1С в стандартном виде, а также в кодировке СР1251 и кодировке ОЕМ. Кроме теоретических сведений, каждый случай будет рассмотрен на практическом примере.

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

Чтобы проводить кодировку в операционной системе Windows, используют таблицы кодировки ASCII – American Standard Code for Interchange of Information. Стоит отметить, что в системе ASCII первые 120 символов принадлежат базовой таблице символов. А первые 32 кода в базовой таблице (включая нулевой) – это коды управления.  

1.      Функция «КодСимвола()» в системе кодировки Unicode

Специальную функция в системе 1С, которая помогает найти код символа, – это «КодСимвола()». Её синтаксис выглядит следующим образом:

Рисунок 1 Синтаксис функции “КодСимвола()”

Параметра у функции «КодСимвола()» два, рассмотрим их:

· «ИсходнаяСтрока» – это параметр строчного типа, который содержит исходную строку; данный параметр является обязательным;

· «НомерСимвола» – этот параметр числового типа обозначает порядковый номер символа внутри строки, код которого нам необходим. Нумерация символов внутри строки начинается с единицы, значение по умолчанию также «1».

Результатом работы данной функции является значение, которое она возвращает – это число, которое и является кодом символа, расположенным в строке, которая была передана строке с позицией, указанной номером. Полученный код принадлежит системе кодировки Unicode.

Данную функцию можно использовать на тонком клиенте, на веб-клиенте, на мобильном клиенте, на толстом клиенте, на сервере, при внешнем соединении, а также для мобильного приложения и на клиенте, и на сервере.

Рассмотрим, как выглядит и работает функция «КодСимвола()» на примере:

Рисунок 2 Функция «КодСимвола()» в системе кодировки Unicode  

2.      Код символа в кодировке СР1251

Иногда бывают случаи, когда нужно, например, получить контрольную сумму в строке, а для этого нужен код каждого из символов строки. Функция «КодСимвола()» возвращает код из системы кодировки Unicode. Рассмотрим пример для получения иной кодировки символа – СР1251:

Рисунок 3 Получение кода символа СР1251  

3.      Код в ОЕМ

Рассмотрим, как происходит получение кода в ОЕМ при помощи платформы 1С. Решение данной задачи основывается на значениях строк с типом «ДвоичныеДанные». Суть метода заключается в том, что первичная строка отправляется в файл при помощи объекта с типом «ТекстовыйДокумент». При этом используется кодировка ОЕМ. Далее появляется новый объект с типом «ДвоичныеДанные», который также основывается на файле и происходит анализ представления объекта в виде строки. При помощи строкового представления появляется возможность видеть байты, что и является кодом символов, в виде шестнадцатеричного представления. После этого остаётся только сделать преобразование из кодов шестнадцатеричного вида в коды десятичного вида.

Далее приведён пример такой функции, которая выполняет всё вышеописанное и преобразует строку в код ОЕМ:

Рисунок 4 Преобразование строки в код ОЕМ

Специалист компании «Кодерлайн»

Анна Лисовая

В этом уроке мы узнаем, как найти значение кода символа ASCII в Python и отобразить результат. ASCII — это аббревиатура, обозначающая американский стандартный код для обмена информацией. Определенное числовое значение дается различным символам, которые компьютеры должны хранить и обрабатывать в ASCII.

ASCII чувствительна к регистру. Один и тот же символ, имеющий разный формат (верхний и нижний регистр), имеет разное значение. Например, значение ASCII “A” равно 65, а значение ASCII “a” равно 97.

Пример 1:

 
K = input("Please enter a character: ")   
   
print("The ASCII value of '" + K + "' is ", ord(K)) 

Выход:

1#

Please enter a character: J 
The ASCII value of 'J' is 74 

2#

Please enter a character: $ 
The ASCII value of '$' is 36 

В приведенном выше коде мы использовали функцию ord() для преобразования символа в целое число, то есть значение ASCII. Эта функция используется для возврата кодовой точки Unicode данного символа.

Пример 2:

 
print("Please enter the String: ", end = "") 
string = input() 
string_length = len(string) 
for K in string: 
    ASCII = ord(K) 
    print(K, "t", ASCII) 

Выход:

Please enter the String:  
 "JavaTpoint# 
"   34 
J   74 
a   97 
v   118 
a   97 
T   84 
p   112 
o   111 
i   105 
n   110 
t   116 
#   35 

Юникод также является методом кодирования, который используется для получения уникального номера символа. Хотя ASCII может кодировать только 128 символов, тогда как текущий Unicode может кодировать более 100 000 символов из сотен сценариев.

Мы также можем преобразовать значение ASCII в соответствующее символьное значение. Для этого мы должны использовать chr() вместо ord() в приведенном выше коде.

Пример 3:

 
K = 21   
J = 123 
R = 76 
print("The character value of 'K' ASCII value is: ", chr(K))   
print("The character value of 'J' ASCII value is: ", chr(J))   
print("The character value of 'R' ASCII value is: ", chr(R)) 

Выход:

The character value of 'K' ASCII value is:  
The character value of 'J' ASCII value is: { 
The character value of 'R' ASCII value is: L 

Заключение

В этом руководстве мы обсудили, как пользователь может преобразовать значение символа в значение ASCII, а также как получить значение символа данного кода ASCII.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Способы, как узнать код символа без программирования

1. Можно в интернете поискать таблицу “ASCII”, “ANSI” или “Юникод”.
2. Использование “Вставка” – “Символ”.

Показать

Для некоторых символов можно попробовать такой способ: выделите символ, для которого нужно узнать код, – вкладка “Вставка” – группа “Символы” – Другие символы… – появится диалог – если в этом диалоге выделен тот же символ, что вы выделили в ворде, то в правом нижнем углу, в поле “Код знака” будет код символа.

В поле “Код знака” код символа может быть в десятичной и шестнадцатеричной системе счисления. Чтобы узнать, в какой системе счисления находится код в поле “Код знака”, посмотрите справа поле “из” и что написано на конце в скобках. Там может быть или “(дес.)” или “(шестн.)”.

Если “дес”, то просто подставляйте код знака, как есть в поле “Найти”, добавив спереди символ “^”. Если “шестн”, то сначала переведите число в десятичную систему счисления (попробуйте найти в интернете онлайн-переводчики), а затем подставляйте в поле “Найти”, добавив спереди “^”. Если этот символ есть только в таблице “Юникод”, то спереди добавьте “^u”.

Если в диалоге выделен другой символ, значит в этом диалоге нет информации по данному символу. Такое может быть, например, со спецсимволами, например, с символом “знак абзаца” – ansi-код 13; в этом диалоге коды начинаются с большего кода.

В этом диалоге используется три таблицы символов:
1) ASCII
2) ANSI. Для русского языка таблица “ANSI” в этом диалоге называется “Кириллица”.
3) Юникод

Способы, как узнать код символа с помощью программирования

1. Во встроенной vba-справке есть раздел: VBA language reference > Visual Basic language reference > Character Sets.

2. Можно выделить нужный символ в программе “Word”, затем нужно перейти в VBA и в окне “Immediate Window” нужно использовать такие коды:
Print Asc(Selection.Text)
или
Print AscW(Selection.Text)
Для кода, полученного первым способом, спереди нужно подставить “^”, а во втором случае “^u”.

3. Если второй способ даёт неправильный код (такое может быть иногда по непонятным причинам), то тогда такой способ. Скопируйте символ, для которого нужно узнать код, – отобразите окно “Найти и заменить” – вставьте в поле “Найти” скопированный символ – включите запись макросов – щёлкните “Найти” – отключите запись макросов – перейдите в VBA и возьмите код символа из записанного макроса.

В некоторых случаях нельзя вставить скопированный символ в поле “Найти”. Не могу объяснить, почему это происходит.

Примечания

В ворде при поиске и замене нужно спереди кода символа ещё добавлять нули, чтобы было четыре цифры, например: ^0013. Это такой синтаксис. Если просто указать “^13”, то не будет работать, если после “^13” будет ещё какой-то текст.

Чтобы в любой момент узнать десятичный Unicode уже введен

ного символа, надо:

1. В окне открытого документа поставить курсор ввода текста справа от нужного символа.

2. Использовать сочетание клавиш Alt+X.

3. Знак будет заменен соответствующим кодом.

4. Чтобы вернуть отображение символа, достаточно снова на

жать клавиши Alt+X.

Чтобы узнать каков Unicode любого (даже не введенного в до

кумент) символа, надо:

1. В окне открытого документа перейти к вкладке «Вставка».

2. В группе «Символы» выбрать кнопку «Символ».

3. В меню «Символ» выбрать пункт «Другие символы».

4. В окне «Символ» в окошке с таблицей символов найти нуж

5. В графе «Из» выбрать кодировку – шестнадцатеричную или десятичную.

6. В графе «Код знака» отобразится код выбранного символа в нужной кодировке.

Автозамена

Некоторые часто используемые символы можно вводить в текст в режиме автозамены, то есть при наборе определенных знаков произойдет замена на нужный символ.

Как включить режима автозамены?

Чтобы включить режим автозамены, выполните следующие действия:

1. В левом верхнем углу окна программы щелкните по кнопке

2. В меню типичных задач выберите кнопку «Параметры Word».

3. В окне «Параметры Word» выберите вкладку «Правописа

4. В поле окна щелкните кнопку «Параметры автозамены.

5. В окне «Автозамена: русский» включите пункт «Заменять при вводе».

Примеры автозамены: (с) = ©;

Как создать способы автозамены?

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

1. В окне открытого документа переходим к вкладке «Вставка».

2. В группе «Символы» выбираем кнопку «Символ».

3. В меню «Символ» выбираем пункт «Другие символы».

4. В окне «Символ» на вкладке «Символы» или «Специальные знаки» выбираем нужный символ или знак, для которого будет создаваться автозамена. Например, символ (±).

5. Щелкаем кнопку «Автозамена».

6. В окне «Автозамена: русский» на вкладке «Автозамена» в графе «На» отобразится выбранный ранее символ.

7. В графе «Заменить» набираем нужную последовательность знаков или букв, которая должна автоматически заменяться выбранным символом. Например, последовательность (/ / / /).

8. Щелкаем кнопку «Добавить».

9. Закрываем окно кнопкой «ОК».

10. Теперь после набора определенной последовательности зна ков в месте размещения курсора ввода текста появится нуж ный символ.

Примечание
. Если необходимо добавить в нужном месте документа тек стовое пояснение или замечание по ходу работы с документом, необходимо воспользоваться вставкой примечания. При выводе документа на печать вне сенные примечания также могут быть распечатаны.

Практически ежедневно в своей работе, при разработке очередного проекта, при написании статей, или же просто общаясь на форумах и в соц-сетях, мы используем те или иные UNICODE, ASCII, шестнадцатеричный и HTML. Держать в голове всю мешанину обозначений не реально, да и незачем. Для этого можно использовать разного вида шпаргалки, таблицы кодов, благо этого добра, достаточно представлено в сети интернет.

Сегодня хочу рассказать о двух интересных и очень полезных -ресурсах, с помощью которых вы всегда сможете осуществить быстрый поиск различных кодов. Очень удобно всегда иметь под рукой (или в списке закладок) свою библиотеку кодов для символов.

1. Character-Code.com

Очень удобный ресурс, динамическая таблица, в которой представлен огромный набор различных кодов для символов, на все случаи жизни. Для быстрого поиска все символы разбиты по категориям. Представлены коды: ASCII, шестнадцатеричный и HTML. Присутствует выбор нужного вам языка, в том числе и русский, что само по себе уже хорошо. Вы с легкостью найдете обозначения символов пунктуации, различного вида стрелок и символьных обозначений валют.

2. Unicodinator

Настоящая онлайн библиотека символов UNICODE, которые могут заменить иконки или изображения. Ресурс предоставляет возможность простой и удобной навигации по блокам UNICODE от кода 0000 до кода DFFF. На проекте отлажена и отлично работает поисковая система по символам, так что найти необходимый, не составит большого труда.
При нажатии на нужный вам символ выводится код HTML и Java/C/Python, который вы можете в последствии использовать в своих проектах.

Раскрою ма-а-ленький секрет (вдруг кто то еще не в курсе), код любого символа можно узнать не отходя от кассы, прямиком из под Windows, стоит лишь пройти по пути:
Пуск >> Выполнить >> charmap
(%windir%system32charmap.exe) и вашему взору откроется подробнейшая таблица символов, которая служит для просмотра символов, включенных в выбранный шрифт, и отображает следующие наборы символов: Windows, DOS и Юникод. Конечно, это немного другая история, но для полной ясности, думаю информация будет не лишней.

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

Желаю вам удачи в создании успешных и интересных проектов.

А на десерт сегодня — пример того, как простыми движениями руки, прямо в окне вашего браузера, можно рисовать удивительные узоры, под релаксирующую музыку отрываясь от реальности.

++. Надеюсь, мы неправильно поняли вопрос.

FST

(10.10.10 15:54:22 MSD)

  • Ссылка

Ответ на:

комментарий
от Love5an 10.10.10 16:02:55 MSD

константы(вроде ‘a’) – тоже.

  • Ссылка

Ответ на:

комментарий
от Love5an 10.10.10 16:02:55 MSD

Т.е. можно напрямую? Код типа этого:

срфк сж
c=a+64;
write(1,"^",1);
write(1,c,1)

работать будет?

Dorif ★★

(10.10.10 16:15:32 MSD)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от FST 10.10.10 16:14:37 MSD

А это типа stdio не требует:

char a = 'a';
printf("%c == %dn", a, a);

?

Dorif ★★

(10.10.10 16:16:37 MSD)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от Dorif 10.10.10 16:15:32 MSD

Первая строчка:

Dorif ★★

(10.10.10 16:17:25 MSD)

  • Ссылка

Ответ на:

комментарий
от Dorif 10.10.10 16:16:37 MSD

Ответ на:

комментарий
от FST 10.10.10 16:21:10 MSD

Ответ на:

комментарий
от Dorif 10.10.10 16:23:25 MSD

printf – это stdio.

вообще, char a – это и символ, и его код.

Есть ещё вот что:
int a = ‘a’;
char a = ‘xFF’

  • Ссылка

Ответ на:

комментарий
от edigaryev 10.10.10 16:30:04 MSD

Ответ на:

комментарий
от Dorif 10.10.10 16:38:01 MSD

В C символ и число – это одно и то же. Твой вопрос не имеет смысла.

Deleted

(10.10.10 16:45:50 MSD)

  • Ссылка

Зачетная неделя началась уже?

yoghurt ★★★★★

(10.10.10 18:31:24 MSD)

  • Ссылка

Ответ на:

комментарий
от osox 10.10.10 20:52:30 MSD

в данном случае абсолютно без разницы, ибо sizeof(char) == 1

хотя оговорюсь: в C sizeof(‘a’) == sizeof(char), а вот в C++ sizeof(‘a’) == sizeof(int)

beastie ★★★★★

(10.10.10 23:16:58 MSD)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от beastie 10.10.10 23:16:58 MSD

просто это спасет от распространения знака для некоторых букв

osox

(10.10.10 23:59:05 MSD)

  • Ссылка

Ответ на:

комментарий
от xcreatepixmap 10.10.10 16:45:13 MSD

сказао же- без stdio. sprintf юзает stdio. И да: мой код работает.)

Dorif ★★

(11.10.10 17:35:19 MSD)

  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Добавить комментарий