0Pricing
C Academy · บทเรียน

อักขระในฐานะจำนวนเต็ม

ค่า ASCII

อักขระในฐานะจำนวนเต็ม เป็นบทเรียน C Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

อักขระคือตัวเลข

ในภาษา C char เป็นเพียงจำนวนเต็มขนาดเล็ก ทุกอักขระมีค่าตัวเลขตามตาราง ASCII

ตัวอักษร 'A' จะถูกเก็บเป็นตัวเลข 65 ส่วน 'B' คือ 66 และเรียงต่อไป

#include <stdio.h>

int main(void) {
    char c = 'A';
    printf("The character %c has value %d\n", c, c);
    return 0;
}

การพิมพ์ค่า ASCII

ใช้ตัวระบุรูปแบบ %d เพื่อพิมพ์ char เป็นค่าจำนวนเต็ม และใช้ %c เพื่อพิมพ์เป็นอักขระ

สามารถมองตัวแปรเดียวกันได้ทั้งสองแบบ

#include <stdio.h>

int main(void) {
    char letter = 'z';
    printf("As char: %c\n", letter);
    printf("As int:  %d\n", letter);
    return 0;
}

ตัวเลขก็มีรหัสเช่นกัน

อักขระ '0' ไม่ใช่ตัวเลข 0 แต่มีค่า ASCII เป็น 48

อักขระตัวเลขตั้งแต่ '0' ถึง '9' อยู่ที่รหัส 48 ถึง 57 ตามลำดับ

#include <stdio.h>

int main(void) {
    printf("'0' = %d\n", '0');
    printf("'9' = %d\n", '9');
    return 0;
}

การแปลง char เป็นตัวเลข

เนื่องจากอักขระตัวเลขเรียงต่อเนื่องกัน คุณจึงแปลงอักขระตัวเลขเป็นค่าตัวเลขได้โดยลบด้วย '0'

'7' - '0' มีค่าเท่ากับ 7

#include <stdio.h>

int main(void) {
    char d = '7';
    int value = d - '0';
    printf("The digit value is %d\n", value);
    return 0;
}

การคำนวณทางเลขคณิตกับอักขระ

เนื่องจาก char เป็นจำนวนเต็ม คุณจึงสามารถนำมาคำนวณทางคณิตศาสตร์ได้ การบวก 1 ให้กับ 'A' จะได้รหัสของ 'B'

วิธีนี้ใช้ได้เพราะตัวอักษรในชุดอักษรเรียงต่อเนื่องกันใน ASCII

#include <stdio.h>

int main(void) {
    char c = 'A';
    char next = c + 1;
    printf("After A comes %c\n", next);
    return 0;
}

การวนลูปผ่านชุดอักษร

คุณสามารถวนลูปตั้งแต่ 'a' ถึง 'z' โดยใช้ char เป็นตัวนับลูปได้

ลูปจะเปรียบเทียบรหัสอักขระเช่นเดียวกับจำนวน

#include <stdio.h>

int main(void) {
    for (char c = 'a'; c <= 'z'; c++) {
        printf("%c", c);
    }
    printf("\n");
    return 0;
}

ช่องว่างระหว่างตัวพิมพ์

ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กมีระยะห่างกัน 32 ใน ASCII โดย 'a' คือ 97 และ 'A' คือ 65

ดังนั้น 'a' - 'A' จึงมีค่าเท่ากับ 32

#include <stdio.h>

int main(void) {
    printf("'A' = %d\n", 'A');
    printf("'a' = %d\n", 'a');
    printf("Gap = %d\n", 'a' - 'A');
    return 0;
}

การแปลงตัวพิมพ์ด้วยตนเอง

เมื่อทราบว่าระยะห่างคือ 32 คุณก็สามารถแปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ได้ด้วยการลบ 32

ภายในแล้ว toupper ทำงาน בדיוקเช่นนี้

#include <stdio.h>

int main(void) {
    char lower = 'm';
    char upper = lower - 32;
    printf("%c becomes %c\n", lower, upper);
    return 0;
}

อักขระพิเศษ

อักขระควบคุมก็มีรหัสเช่นกัน อักขระขึ้นบรรทัดใหม่ '\n' คือ 10 แท็บ '\t' คือ 9 และตัวจบค่าว่าง '\0' คือ 0

อักขระเว้นวรรคมีค่า 32

#include <stdio.h>

int main(void) {
    printf("newline = %d\n", '\n');
    printf("tab     = %d\n", '\t');
    printf("space   = %d\n", ' ');
    return 0;
}

Char เก็บจำนวนขนาดเล็ก

char โดยทั่วไปเก็บค่าได้ตั้งแต่ -128 ถึง 127 (มีเครื่องหมาย) หรือ 0 ถึง 255 (ไม่มีเครื่องหมาย)

คุณสามารถเก็บจำนวนเต็มขนาดเล็กไว้ใน char ได้โดยตรง

#include <stdio.h>

int main(void) {
    char small = 100;
    small = small + 5;
    printf("small = %d\n", small);
    return 0;
}

การสร้างการเลื่อนแบบซีซาร์

เมื่อนำแนวคิดเหล่านี้มารวมกัน รหัสซีซาร์อย่างง่ายจะเลื่อนตัวอักษรแต่ละตัวไปเป็นจำนวนคงที่โดยใช้การคำนวณกับอักขระ

ในที่นี้เราจะเลื่อนตัวอักษรไปข้างหน้า 3 ตำแหน่ง

#include <stdio.h>

int main(void) {
    char c = 'x';
    char shifted = 'a' + (c - 'a' + 3) % 26;
    printf("%c shifted by 3 = %c\n", c, shifted);
    return 0;
}

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเรื่องการมองอักขระเป็นจำนวนเต็ม

สรุปทบทวน

คุณได้เรียนรู้ว่าในภาษา C:

  • char เป็นจำนวนเต็มขนาดเล็กที่เก็บรหัส ASCII
  • %c แสดงค่าเป็นอักขระ ส่วน %d แสดงเป็นจำนวน
  • ตัวเลข '0'-'9' และตัวอักษรเรียงต่อเนื่องกัน จึงสามารถนำมาคำนวณได้
  • c - '0' แปลงอักขระตัวเลขเป็นค่าของมัน และระยะห่างระหว่างตัวพิมพ์คือ 32

คำถามที่พบบ่อย

บทเรียน “อักขระในฐานะจำนวนเต็ม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “อักขระในฐานะจำนวนเต็ม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “อักขระในฐานะจำนวนเต็ม”

ค่า ASCII คุณปฏิบัติ C Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “อักขระในฐานะจำนวนเต็ม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C Academy นี้ได้ไหม

ได้ บทเรียน C Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อักขระในฐานะจำนวนเต็ม
  2. ไลบรารี ctype
  3. การอ่านอักขระ
  4. การสร้างเครื่องมืออักขระ
← กลับไปที่ C Academy