2009-09-24 34 views
19

C'ye bir char ve eşdeğeri ASCII değerini nasıl yazdırabilirim?Yazdırma karakterleri ve onların ASCII kodunu C

+0

Şimdiye kadar 12 cevaplar arasında hiçbir doğru yanıt var gibi görünüyor.Çoğu ASCII 7 bit kodlama olduğu için 0 ile 127 aralığına sınırlamada başarısız olur ve şu ana kadar hiçbiri C'deki bir karakterin sayısal değerinin * ASCII * değeri olması gerekmediği sorunu çözmedi. Sistem/derleyici, EBCDIC kodlaması gibi bir şey kullanıyor olabilir, daha sonra bir 'a' sayısal değeri, C.'de bir 'a'nın ASCII değeri olmaz. – BlackJack

cevap

30

Bu, tüm ASCII değerlerini yazdırır:

int main() 
{ 
    int i; 
    i=0; 
    do 
    { 
     printf("%d %c \n",i,i); 
     i++; 
    } 
    while(i<=255); 
    return 0; 
} 

ve bu belirli bir karakterin ASCII değerini yazdırır:

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

% c: Bu deneyin

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

Kodunuz, kareyi bir kağıda dönüştürerek oluşturulan ondalık değeri basar. int. Bu bazı sistemlerde ascii kodu olabilir, ancak sonra tekrar olmayabilir. –

+0

Yukarıdaki program ASCII karakterlerini 127'den 160'a neden yazdırmıyor? – CodeCodeCode

+2

Oldukça emin ASCII, 127'de kapanıyor – sreya

5

tek bir karakter için biçim dizgesi ve bir rakam/tamsayı için% d'dir. Karakteri bir tam sayıya çevirerek ascii değerini elde edersiniz.

+0

Standart tür tanıtımları 'c''yi otomatik olarak' int' olarak tanıtacağından, 'int' seçeneğine gitmenize gerek yoktur. –

+0

Whoops - yakalama için teşekkürler. Muhtemelen sadece çok açık olmaya çalışıyordum :) – MBillock

0

Bu standard girişten metin satırı okur ve çizgi karakterleri ve onların ASCII kodları yazdırır:

#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 - Gerçekten pedantic için kod düzeltildi. Evet, metin arabellekleri için "unsigned char []" özelliğini kullanmak her zaman iyi bir fikirdir. –

-3

Bu, herhangi bir C sisteminde çalışması gerekir değil sadece bu ASCII veya UTF-hangi 8 tabanlı:

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

Sen bir karakter için sormak mi; diğer 96 tanesi okuyucu için bir egzersiz olarak bırakılmıştır.

-1

void ana() {

Printf ("% D", 'a'); // ASCII değerini almak için karakter seçimimizle değiştirebilirsiniz. //

getch();

}

+1

sadece vermek yerine, – ArtB

+0

yerine cevaplarını açıklamaya çalışın lol çalışmaz – ucefkh

1

döngü sırasında kullanılarak 0 ile 255 arasında tüm ASCII değerlerini yazdırmak için. ondalık çıkış ASCII değeri gerektiği gibi basılı

#include<stdio.h> 
main() 
{ 
    int a; 
    a=0; 
    while(a<=255) 
    { 
    printf("%d = %c\\n",a,a); 
    a++; 
    } 
    getch(); 
} 
tek tırnak ('XXXXXX) içinde
-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

Karakter.

int main(){ 

    printf("D\n"); 
    printf("The ASCII of D is %d\n",'D'); 

    return 0; 

} 

Çıktı:

% ./a.out 
>> D 
>> The ASCII of D is 68 
-1
Ben Bu "için" kullanıyordum

benim çözümdür:

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

Hiçbir şey bu

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

Kaynak daha basit olabilir : 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

Merhaba, cevabınız için teşekkür ederim. Orijinal afiş yeni başlayan biri gibi görünüyor, kodunuzun her adımını ve bunların imalarını açıklayabilir misiniz? Örneğin, 'conio.h' kullanarak kodunuz açıkça Microsoft'un bu başlık standart C ya da POSIX'te olmadığı yönündedir. – bufh

-3

Ayrıca bu (C++) gibi kullanabilirsiniz:

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

Lütfen cevabınızın formatını düzenleyin! – jogo

+1

Bunun C ile ne ilgisi var? :) – animaonline