Character Arithmetic ใช้ดำเนินการคณิตศาสตร์กับตัวอักษร (Char) ใน C โดยอัตโนมัติแปลงเป็นค่า ASCII (Integer)
ตัวอย่างโค้ด
#include <stdio.h>
int main() {
char s = 'm';
char t = 'z' - 'y';
printf("%d\n", s); // 109 (ASCII of 'm')
printf("%c\n", s); // m
printf("%d\n", s + 1); // 110
printf("%c\n", s + 1); // n
printf("%d\n", s - 1); // 108
printf("%c\n", s - 1); // l
printf("%d\n", t); // 1 ('z' - 'y' = 122 - 121)
// printf("%c", t); // Non-printable
return 0;
}
ผลลัพธ์
109
m
110
n
108
l
1
การประยุกต์ใช้
- ตัวอักษรถัดไป/ก่อนหน้า:
c + 1,c - 1 - แปลง Upper ↔ Lower:
c - 'a' + 'A'หรือc ^ 32 - Digit to Int:
c - '0' - Caesar Cipher:
(c - 'a' + shift) % 26 + 'a'
ข้อควรระวัง: Char อาจเป็น Signed หรือ Unsigned ขึ้นกับ Implementation ควรใช้ unsigned char สำหรับ Arithmetic