Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Character Arithmetic ใน C

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