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

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

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

5 ответов


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;

аналогично FO hex valuwes-все числа являются шестнадцатеричными числами, поэтому это просто вопрос вывода:

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

" hex " в инструкции output является манипулятором C++. Есть манипуляторы для шестнадцатеричных и десятичных (dec), но, к сожалению, не для двоичных.


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