C Academy · บทเรียน

ไลบรารี ctype

isdigit, isalpha, toupper

บทเรียน 2 จาก 413 ขั้นตอน

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

ctype.h คืออะไร

ส่วนหัว <ctype.h> มีฟังก์ชันสำหรับจำแนกประเภทและแปลงอักขระ

ส่วนนี้ช่วยให้คุณไม่ต้องจำช่วงของ ASCII และเขียนการเปรียบเทียบด้วยตนเอง

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("Is 'A' alpha? %d\n", isalpha('A'));
    return 0;
}

isdigit

isdigit(c) คืนค่าที่ไม่ใช่ศูนย์ หาก c เป็นอักขระตัวเลข '0'-'9' และคืนค่า 0 ในกรณีอื่น

#include <stdio.h>
#include <ctype.h>

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

isalpha

isalpha(c) คืนค่าที่ไม่ใช่ศูนย์หาก c เป็นตัวอักษร ไม่ว่าจะเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก

ตัวเลขและสัญลักษณ์จะคืนค่า 0

#include <stdio.h>
#include <ctype.h>

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

isalnum และ isspace

isalnum(c) เป็นจริงสำหรับตัวอักษรหรือตัวเลข ส่วน isspace(c) เป็นจริงสำหรับอักขระช่องว่าง เช่น ช่องว่าง แท็บ และอักขระขึ้นบรรทัดใหม่

#include <stdio.h>
#include <ctype.h>

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

isupper และ islower

isupper(c) ตรวจสอบตัวอักษรพิมพ์ใหญ่ ส่วน islower(c) ตรวจสอบตัวอักษรพิมพ์เล็ก

ฟังก์ชันเหล่านี้มีประโยชน์ก่อนตัดสินใจแปลงตัวพิมพ์

#include <stdio.h>
#include <ctype.h>

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

ispunct

ispunct(c) คืนค่าที่ไม่ใช่ศูนย์สำหรับอักขระวรรคตอนที่พิมพ์ได้ เช่น ! ? และ , ซึ่งไม่ใช่ตัวอักษร ตัวเลข หรือช่องว่าง

#include <stdio.h>
#include <ctype.h>

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

toupper

toupper(c) คืนค่าอักขระพิมพ์ใหญ่ของตัวอักษร หาก c ไม่ใช่ตัวอักษรพิมพ์เล็ก จะคืนค่า c โดยไม่เปลี่ยนแปลง

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("%c\n", toupper('h'));
    printf("%c\n", toupper('5'));
    return 0;
}

tolower

tolower(c) คืนค่าอักขระพิมพ์เล็กของตัวอักษรพิมพ์ใหญ่ หรือคืนอักขระเดิมหากไม่ใช่ตัวพิมพ์ใหญ่

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("%c\n", tolower('H'));
    printf("%c\n", tolower('z'));
    return 0;
}

การจำแนกประเภทสตริง

วนลูปผ่านสตริงและใช้ฟังก์ชัน ctype เพื่อนับตัวเลขและตัวอักษร

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char *s = "abc123";
    int letters = 0, digits = 0;
    for (int i = 0; s[i]; i++) {
        if (isalpha(s[i])) letters++;
        if (isdigit(s[i])) digits++;
    }
    printf("letters=%d digits=%d\n", letters, digits);
    return 0;
}

การเปลี่ยนสตริงทั้งชุดเป็นตัวพิมพ์ใหญ่

ใช้ toupper ร่วมกับลูปเพื่อแปลงสตริงทั้งหมดเป็นตัวพิมพ์ใหญ่ทีละอักขระ

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char s[] = "Hello";
    for (int i = 0; s[i]; i++) {
        s[i] = toupper(s[i]);
    }
    printf("%s\n", s);
    return 0;
}

ส่งค่า int ไม่ใช่ char ติดลบ

ฟังก์ชัน ctype รับค่า int ที่สามารถแทนด้วย unsigned char ได้ หรือเป็น EOF

การส่งค่า char ติดลบโดยตรงมีพฤติกรรมที่ไม่ได้กำหนดไว้ หากไม่แน่ใจ ให้แปลงเป็น unsigned char

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char c = 'Q';
    int result = isalpha((unsigned char)c);
    printf("safe isalpha = %d\n", result);
    return 0;
}

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

ทดสอบความรู้เกี่ยวกับไลบรารี ctype

สรุปทบทวน

ไลบรารี <ctype.h> ช่วยให้คุณ:

  • จำแนกประเภทด้วย isdigit, isalpha, isalnum, isspace, ispunct, isupper, islower
  • แปลงค่าด้วย toupper และ tolower
  • ส่งค่าที่แปลงเป็น unsigned char เสมอ เพื่อหลีกเลี่ยงพฤติกรรมที่ไม่ได้กำหนดไว้
เริ่มต้นได้ฟรี

เรียนรู้ C ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
39
บทเรียน
144

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

บทเรียน “ไลบรารี ctype” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ไลบรารี ctype”

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

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

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

บทเรียน “ไลบรารี ctype” ใช้เวลานานแค่ไหน

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

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

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

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

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