首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言 toascii 函數詳解:字符轉 ASCII 碼值完整示例

     編輯:關於C

函數原型與作用

extern int toascii(int c);  // 定義於 
  • 將字符 c 轉換為對應的 ASCII 碼值(0-255)。
  • 參數類型 int,實際接受 unsigned char 或 EOF。
  • 返回值為 int,即字符的 ASCII 碼。
  • 實現通常為 #define toascii(c) ((c) & 0x7F),保留低 7 位。

完整演示程序

#include \
#include \
#include \
using namespace std;\

void to_asscii(char *str);\

int main(int argc, char **argv, char **environ) {\
    char *str = "dlutbrucezhang";\
    to_asscii(str);\
    return 0;\
}\

void to_asscii(char *str) {\
    int len = strlen(str);\
    for (int i = 0; i != len; ++i) {\
        cout << str[i] << " : " << toascii(str[i]) << endl;\
    }\
}

運行結果

d : 100\
l : 108\
u : 117\
t : 116\
b : 98\
r : 114\
u : 117\
c : 99\
e : 101\
z : 122\
h : 104\
a : 97\
n : 110\
g : 103\
運行截圖

關鍵點補充

  1. ASCII 表範圍:0-127 為標準 ASCII,128-255 為擴展 ASCII(視編碼頁而定)。toascii 通過 & 0x7F 強制映射到 0-127。
  2. 哈希表應用:字符 ASCII 值常作為哈希函數輸入,如 hash = (hash * 31 + toascii(c)) % TABLE_SIZE。
  3. 標準庫替代:直接用 (int)ch 強制轉換即可獲取 ASCII 碼,toascii 非標準 C(POSIX 擴展),跨平台建議用 (unsigned char)ch。
  4. 字符編碼陷阱:多字節編碼(UTF-8、GBK)下,單字節 char 無法完整表示漢字,需用 wchar_t/char16_t 處理寬字符。

擴展:構建可打印 ASCII 碼表

void print_ascii_table() {\
    for (int i = 32; i < 127; ++i) {\
        printf("%3d : '%c'  ", i, i);\
        if ((i - 31) % 6 == 0) putchar('\\n');\
    }\
}

掌握字符與數值轉換,是理解字符串處理、編碼解碼、哈希算法、網絡協議解析的基礎技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved