學號、身份證號、手機號、銀行卡號等「標識符」類數據,必須使用字元陣列/字串存儲,不可用數值型別 (int/long/double)。
| 維度 | 數值型別 (long) | 字串型別 (char[]/String) |
|---|---|---|
| 數學運算 | 支援 + - * / | 不支援 (無意義) |
| 前導零 | 自動丟失 (00123 → 123) | 完整保留 |
| 長度限制 | long 僅 19 位 (含符號位) | 無理論上限 |
| 業務操作 | 無四則運算需求 | 支援模糊查詢、截取、比對、正則驗證 |
| 國際化 | 無法儲存字母/特殊符號 | 完美支援 |
20210001、CS2021001 含字母,長度常超 10 位,需模糊查詢 (按年級、專業)。X,**長整型無法儲存 X**,且需按地址碼、出生日期解析。// ✅ 正確
char studentId[20];
scanf("%19s", studentId); // 限制長度防溢出
printf("學號: %s\n", studentId);
// ❌ 錯誤
long studentId;
scanf("%ld", &studentId); // 輸入 202100012345 超出 long 範圍或丟失前導零