Мне нужна функция, которая возвращает значение ASCII символа, включая пробелы, табуляции, новые строки и т. д.
Аналогично, какая функция выполняет преобразование между шестнадцатеричными, десятичными и двоичными числами?
Мне нужна функция, которая возвращает значение 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;
«Шестнадцатеричный» в операторе вывода — это манипулятор C++. Есть манипуляторы для шестнадцатеричного и десятичного (dec), но, к сожалению, нет для двоичного.
Что касается шестнадцатеричного и двоичного - это просто представления целых чисел. Вероятно, вам нужно что-то вроде printf("%d",n) и printf("%x",n) - первая печатает десятичную, вторая шестнадцатеричную версию того же числа. Уточните, что вы пытаетесь сделать -