Как напечатать char и его эквивалентное значение ASCII в C?
Печать символов и их ASCII-кода в C
comment
Пока кажется, что среди 12 ответов нет правильного ответа. Многим не удается ограничить значения диапазоном от 0 до 127, поскольку ASCII — это 7-битная кодировка, и до сих пор никто не решил проблему, заключающуюся в том, что числовое значение символа в C не обязательно должно быть ASCII я> значение! Система/компилятор также может использовать что-то вроде кодировки EBCDIC, тогда числовое значение «а» не будет значением ASCII «а» в C.
- person BlackJack   schedule 17.08.2017
Ответы (7)
Это распечатывает все значения ASCII:
int main()
{
int i;
i=0;
do
{
printf("%d %c \n",i,i);
i++;
}
while(i<=255);
return 0;
}
и это выводит значение ASCII для данного символа:
int main()
{
int e;
char ch;
clrscr();
printf("\n Enter a character : ");
scanf("%c",&ch);
e=ch;
printf("\n The ASCII value of the character is : %d",e);
getch();
return 0;
}
person
ennuikiller
schedule
24.09.2009
Ваш код печатает десятичное значение, созданное путем преобразования char в int. Это может быть код ascii в некоторых системах, но опять же может и не быть.
- person Pete Kirkham; 24.09.2009
Почему приведенная выше программа не печатает символы ASCII от 127 до 160?
- person CodeCodeCode; 03.05.2013
Почти уверен, что ASCII останавливается на 127
- person ; 24.09.2013
Разве это не неопределенное поведение?? используя
%d
для печати char
??
- person user007; 10.07.2015
Извините, -1 за
getch()
. Ужасный пример использования этой нестандартной функции.
- person Iharob Al Asimi; 18.01.2016
@ user007: Нет. Невозможно передать
char
функции с переменным числом аргументов. Любой целочисленный тип, который меньше int
, будет преобразован в int
или unsigned int
. Единственным случаем, который может вызвать проблемы, будет необычная реализация, когда CHAR_MAX
не является репрезентативным в signed int
, но вызовет всевозможные проблемы в другом месте.
- person Nisse Engström; 18.08.2017
Представительныйбле. ... но это вызовет всевозможные проблемы и в других местах.
- person Nisse Engström; 18.08.2017
Прежде всего, ASCII имеет 7 бит от 0 до 128 (0x0 до 0x7F), после чего он называется EASCII. означает РасширенныйAscii.то есть 8-битный, и если вам нужно напечатать EASCII, вам нужно UTF-8 кодировка включена из заголовочного файла Locale.h.
- person HaseeB Mir; 07.11.2018
Попробуй это:
char c = 'a'; // or whatever your character is
printf("%c %d", c, c);
%c — это строка формата для одного символа, а %d — для цифры/целого числа. Приведя char к целому числу, вы получите значение ascii.
person
MBillock
schedule
24.09.2009
Вам не нужно приводить к
int
, так как стандартные промо-акции автоматически преобразуют c
в int
.
- person David R Tribble; 24.09.2009
Ничего не может быть проще, чем это
#include <stdio.h>
int main()
{
int i;
for( i=0 ; i<=255 ; i++ ) /*ASCII values ranges from 0-255*/
{
printf("ASCII value of character %c = %d\n", i, i);
}
return 0;
}
Источник: программа для печати Значение ASCII всех символов
person
Pankaj Prakash
schedule
19.06.2015
Чтобы напечатать все значения ascii от 0 до 255, используя цикл while.
#include<stdio.h>
int main(void)
{
int a;
a = 0;
while (a <= 255)
{
printf("%d = %c\n", a, a);
a++;
}
return 0;
}
person
Sudeep Acharya
schedule
29.01.2013
ASCII имеет 7 бит, поэтому от 0 до 127 после этого определяется системой EASCII.
- person HaseeB Mir; 07.11.2018
Символы в одинарных кавычках ('XXXXXX') при печати в виде десятичного числа должны выводить значение ASCII.
int main(){
printf("D\n");
printf("The ASCII of D is %d\n",'D');
return 0;
}
Выход:
% ./a.out
>> D
>> The ASCII of D is 68
person
syamantak82
schedule
08.02.2015
Это читает строку текста из стандартного ввода и распечатывает символы в строке и их коды ASCII:
#include <stdio.h>
void printChars(void)
{
unsigned char line[80+1];
int i;
// Read a text line
if (fgets(line, 80, stdin) == NULL)
return;
// Print the line chars
for (i = 0; line[i] != '\n'; i++)
{
int ch;
ch = line[i];
printf("'%c' %3d 0x%02X\n", ch, ch, (unsigned)ch);
}
}
person
David R Tribble
schedule
24.09.2009
%X
ожидает целое число без знака.
- person Nisse Engström; 18.08.2017
@NisseEngström - исправлен код для действительно педантичных. Да, всегда полезно использовать
unsigned char[]
для текстовых буферов.
- person David R Tribble; 25.09.2017
Самый простой подход к печати значений ASCII заданного алфавита.
Вот пример:
#include<stdio.h>
int main()
{
//we are printing the ASCII value of 'a'
char a ='a'
printf("%d",a)
return 0;
}
person
Python-Baby
schedule
03.10.2019