2011-01-25 13 views
9

Trong delphi tồn tại một hàm gọi là Ord trả về giá trị thứ tự của một biểu thức kiểu thứ tự.Lấy giá trị ascii cho một char, Ord tương đương trong C++

ví dụ bạn có thể lấy giá trị Ascii cho một char theo cách này

Ord ('A') trả 65

Ord ('a') trả 97

trong C++ mà chức năng tôi phải sử dụng để có được giá trị ascii cho một Char.

Trả lời

14

Đơn giản int a = c; trong đó cchar sẽ hoạt động.

+4

sẽ không làm việc cho mã ANSI trên 127, trừ một số loại tùy chọn biên dịch được sử dụng . 'int a = (unsigned char) c;' sẽ gần hơn với Ord(). –

+0

@Sergey, từ ANSI không bao giờ được đề cập trong câu hỏi, chỉ ASCII. Và ASCII được giới hạn ở mức 0..127. Trong mọi trường hợp, tiêu chuẩn ISO không quy định liệu 'char' có được ký hay không. – paxdiablo

+1

@paxdiablo, nhưng Ord() đã được đề cập. Và Ord() hỗ trợ các ký tự trên 127. Và dàn diễn viên nên được sử dụng chính xác bởi vì tiêu chuẩn không đảm bảo char được unsigned, trong khi hầu hết việc sử dụng thực hiện được ký theo mặc định. Nhưng tốt hơn là nên sử dụng Unicode. –

7

Một char giữ giá trị ASCII.

Bạn có thể truyền số nguyên đó vào số nguyên nếu muốn.

+1

Nói cách khác, 'A' _is_ 65. –

+1

ngoại trừ việc chuẩn C++ không đòi hỏi ASCII – sellibitze

3

Nhập nó bằng cách sử dụng ascii = (int)character.

2
char c = 'a'; 
printf("%d", c); 

này sẽ làm ...

nếu bạn cần phải sử dụng giá trị ascii cho hoạt động số, sử dụng

char c = 'a'; 
int i = (int)c; 
1

thế nào về

#include <ctype.h> 

int LOrdValue = __toascii('a'); 
0

bạn có thể làm

char a ='A'; 
int b = a&0b11111111; 

này nên cung cấp cho 65

Các vấn đề liên quan