2009-09-24 2 views
19

Как напечатать символ и его эквивалентное значение ASCII в C?Печать символов и их ASCII-код в C

+0

До сих пор, кажется, нет правильного ответа среди 12 ответов.Многие из них терпят неудачу при ограничении значений в диапазоне от 0 до 127, поскольку ASCII представляет собой 7-битное кодирование, и пока никто не решил проблему, что числовое значение символа в C не должно быть значением * ASCII *! Система/компилятор также может использовать что-то вроде кодирования EBCDIC, тогда числовое значение «a» не будет значением ASCII для «a» в C. – BlackJack

ответ

30

Это выводит все значения 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; 
} 
+3

. Ваш код печатает десятичное значение, созданное путем преобразования символа в внутр. Это может быть код ascii на некоторых системах, но опять же это может быть не так. –

+0

Почему вышеуказанная программа не печатает символы ASCII от 127 до 160? – CodeCodeCode

+2

Довольно уверен ASCII останавливается на 127 – sreya

5

Попробуйте это:

char c = 'a'; // or whatever your character is 
printf("%c %d", c, c); 

В% гр это строка формата для одного символа и% d для цифры/целого. Извлекая char на целое число, вы получите значение ascii.

+0

Вам не нужно указывать на 'int', поскольку промо-акции стандартного типа будут способствовать' c' в 'int' автоматически. –

+0

Упс - спасибо за улов. Вероятно, просто пытался быть слишком явным :) – MBillock

0

Это читает строку текста из стандартного ввода и выводит символы в строке и их 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); 
    } 
} 
+0

'% X' ожидает ** unsigned ** int. –

+0

@ NisseEngström - Код исправлен, для действительно педантичного. Да, всегда полезно использовать 'unsigned char []' для текстовых буферов. –

-3

Это должно работать в любой системе C, а не только те, которые являются ASCII или UTF- 8 на основе:

printf (" Q is decimal 81 in ASCII\n"); 

Вы действительно просил полукокса; остальные 96 из них оставлены в качестве упражнения для читателя.

-1

силы основных() {

Е ("% d", 'а'); // Мы можем заменить a нашим выбором символа, чтобы получить его значение ASCII //

getch();

}

+1

попробуйте объяснить свои ответы вместо того, чтобы просто дать – ArtB

+0

это не сработает lol – ucefkh

1

Для печати всех значений ASCII от 0 до 255, используя в то время цикла.

#include<stdio.h> 
main() 
{ 
    int a; 
    a=0; 
    while(a<=255) 
    { 
    printf("%d = %c\\n",a,a); 
    a++; 
    } 
    getch(); 
} 
-1
#include"stdio.h" 

#include"conio.h"//R.M.VIVEK coding for ascii display values 

void main() 
{ 

    int rmv; 

    for(rmv=0;rmv<=256;rmv++) 
     if(printf("%c",rmv)) 
      getch(); 
} 
0

Символов в пределах одной кавычки ('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 
-1

Я использовал "для" это мое решение:

using System; 
using System.Text; 

    class PrintASCIITable 
    { 
     static void Main() 
     { 
      byte symbols = 255; 

      for (int i = 0; i < symbols; i++) 
      { 
       Console.WriteLine((char)i); 
      } 
     } 
    } 
0

Ничто не может быть более простым, чем это

#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; 
} 

Источник : program to print ASCII value of all characters

-1
#include<stdio.h> 
#include<conio.h> 
void main() 
{ 
    int i; 
    char ch; 
    clrscr(); 
    printf("\t Enter a Value: "); 
    scanf("%c",&ch); 
    i=0; 
    while(i<=ch) 
    { 
     printf("\t %d Is %c \n",i,i); 
     i=i+1; 
    } 
    getch(); 
} 
+4

Привет, спасибо за ваш ответ. Оригинальный плакат кажется новичком, не могли бы вы объяснить каждый шаг вашего кода и их последствия? например, используя 'conio.h', ваш код явно ориентирован на Microsoft, поскольку этот заголовок не находится в стандартном C или POSIX. – bufh

-3

Также вы можете использовать, как это (C++):

int main(){ 
     int x; 
     cin >> x; 
     cout <<(char)x; // In the form of character 
     char a; 
     cin >> a; 
     cout << (int)a; // In the form of `Ascii` code 
} 
+0

Пожалуйста, отредактируйте форматирование своего ответа! – jogo

+1

Что это связано с C? :) – animaonline

 Смежные вопросы

  • Нет связанных вопросов^_^