Существует ли функция, которая возвращает значение символа в формате ASCII?(C++)

StackOverflow https://stackoverflow.com/questions/845710

Вопрос

Мне нужна функция, которая возвращает ASCII-значение символа, включая пробелы, табуляции, новые строки и т.д...

Аналогичным образом, что это за функция, которая преобразует шестнадцатеричные, десятичные и двоичные числа?

Это было полезно?

Решение

char c;
int ascii = (int) c;
s2.data[j]=(char)count;

Символ является целое число, нет необходимости в функциях преобразования.

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

Другие советы

Вам не нужна функция для получения значения ASCII - просто преобразуйте в целое число с помощью (неявного) приведения:

int x = 'A';  // x = 65
int y = '\t'; // x = 9

Чтобы преобразовать число в шестнадцатеричное или десятичное, вы можете использовать любой из элементов printf семья:

char buffer[32];  // make sure this is big enough!
sprintf(buffer, "%d", 12345);  // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345);  // hex: buffer is assigned "3039"

Нет встроенной функции для преобразования в двоичный файл;тебе придется свернуть свой собственный.

Если вы хотите получить ASCII-значение символа в вашем коде, просто заключите символ в кавычки

char c = 'a';

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

char c = 'A';
cout << c << " has code " << int(c) << endl;

Аналогично с шестнадцатеричными значениями - все числа являются шестнадцатеричными, так что это просто вопрос вывода:

int n = 42;
cout << n << " in hex is " << hex << n << endl;

"Hex" в инструкции output является манипулятором C ++.Существуют манипуляторы для шестнадцатеричной и десятичной системы счисления (dec), но, к сожалению, не для двоичной системы счисления.

Что касается шестнадцатеричных и двоичных - это всего лишь представления целых чисел.Вероятно, вам нужно что-то вроде printf("%d", n) и printf("%x",n) - первый выводит десятичную, второй - шестнадцатеричную версию того же числа.Уточните, что вы пытаетесь сделать -

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top