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

การสร้างเครื่องมืออักขระ

ตัวอย่างการใช้งานจริง

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

การรวมความรู้ที่มี

ตอนนี้คุณสามารถสร้างเครื่องมือจัดการอักขระขนาดเล็กที่ใช้งานได้จริง โดยรวมการคำนวณกับ char ไลบรารี ctype และลูปสตริงเข้าด้วยกัน

เรามาเขียนฟังก์ชันช่วยที่ใช้กันบ่อยกัน

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

int main(void) {
    char c = 'g';
    printf("Upper: %c\n", toupper(c));
    return 0;
}

การนับสระ

ตัวนับสระจะตรวจสอบอักขระแต่ละตัวกับชุด a, e, i, o, u ทั้งในรูปตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

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

int count_vowels(const char *s) {
    int n = 0;
    for (int i = 0; s[i]; i++) {
        char c = tolower(s[i]);
        if (c=='a'||c=='e'||c=='i'||c=='o'||c=='u') n++;
    }
    return n;
}

int main(void) {
    printf("%d\n", count_vowels("Education"));
    return 0;
}

การกลับลำดับสตริง

สลับอักขระจากปลายทั้งสองด้านเข้าหาตรงกลาง เพื่อกลับลำดับสตริงภายในพื้นที่เดิม

#include <stdio.h>
#include <string.h>

int main(void) {
    char s[] = "hello";
    int n = strlen(s);
    for (int i = 0; i < n / 2; i++) {
        char tmp = s[i];
        s[i] = s[n-1-i];
        s[n-1-i] = tmp;
    }
    printf("%s\n", s);
    return 0;
}

การตรวจสอบพาลินโดรม

พาลินโดรมคือข้อความที่อ่านจากหน้าไปหลังและหลังไปหน้าได้เหมือนกัน ให้เปรียบเทียบตำแหน่งที่อยู่ตรงข้ามกันจนกว่าจะมาบรรจบกัน

#include <stdio.h>
#include <string.h>

int is_palindrome(const char *s) {
    int i = 0, j = strlen(s) - 1;
    while (i < j) {
        if (s[i] != s[j]) return 0;
        i++; j--;
    }
    return 1;
}

int main(void) {
    printf("%d\n", is_palindrome("level"));
    printf("%d\n", is_palindrome("world"));
    return 0;
}

การสลับตัวพิมพ์

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

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

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

การตัดอักขระที่ไม่ใช่ตัวเลข

เก็บเฉพาะอักขระตัวเลขจากสตริง ซึ่งมีประโยชน์สำหรับทำความสะอาดหมายเลขโทรศัพท์

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

int main(void) {
    char *s = "(555) 123-4567";
    for (int i = 0; s[i]; i++) {
        if (isdigit((unsigned char)s[i])) putchar(s[i]);
    }
    putchar('\n');
    return 0;
}

atoi ด้วยตนเอง

แปลงสตริงตัวเลขเป็นจำนวนเต็มโดยสะสมตัวเลขแต่ละหลัก: คูณผลรวมสะสมด้วย 10 แล้วบวกค่าของหลักนั้น

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

int my_atoi(const char *s) {
    int n = 0;
    for (int i = 0; isdigit((unsigned char)s[i]); i++) {
        n = n * 10 + (s[i] - '0');
    }
    return n;
}

int main(void) {
    printf("%d\n", my_atoi("427") + 3);
    return 0;
}

การนับคำ

นับคำโดยตรวจจับการเปลี่ยนจากอักขระช่องว่างไปเป็นอักขระที่ไม่ใช่ช่องว่าง

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

int main(void) {
    char *s = "the quick brown fox";
    int words = 0, in_word = 0;
    for (int i = 0; s[i]; i++) {
        if (isspace((unsigned char)s[i])) in_word = 0;
        else if (!in_word) { in_word = 1; words++; }
    }
    printf("words = %d\n", words);
    return 0;
}

การทำตัวอักษรแรกของคำให้เป็นตัวพิมพ์ใหญ่

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

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

int main(void) {
    char s[] = "hello there friend";
    int start = 1;
    for (int i = 0; s[i]; i++) {
        if (isspace((unsigned char)s[i])) start = 1;
        else { if (start) s[i] = toupper(s[i]); start = 0; }
    }
    printf("%s\n", s);
    return 0;
}

รหัส ROT13

ROT13 เลื่อนตัวอักษรแต่ละตัวไป 13 ตำแหน่ง โดยวนกลับเมื่อถึงปลายชุดอักษร การใช้วิธีนี้สองครั้งจะได้ข้อความเดิมกลับคืนมา

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

int main(void) {
    char s[] = "Hello";
    for (int i = 0; s[i]; i++) {
        char c = s[i];
        if (isupper(c)) s[i] = 'A' + (c - 'A' + 13) % 26;
        else if (islower(c)) s[i] = 'a' + (c - 'a' + 13) % 26;
    }
    printf("%s\n", s);
    return 0;
}

ความถี่ของอักขระ

นับจำนวนครั้งที่อักขระที่ระบุปรากฏในสตริงด้วยลูปและการเปรียบเทียบอย่างง่าย

#include <stdio.h>

int main(void) {
    char *s = "mississippi";
    char target = 's';
    int count = 0;
    for (int i = 0; s[i]; i++) {
        if (s[i] == target) count++;
    }
    printf("'%c' appears %d times\n", target, count);
    return 0;
}

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

ทดสอบทักษะการสร้างเครื่องมือจัดการอักขระ

สรุปทบทวน

คุณได้สร้างเครื่องมือจัดการอักขระที่ใช้งานได้จริง:

  • นับสระ คำ และความถี่ของอักขระ
  • กลับลำดับสตริงและตรวจสอบพาลินโดรม
  • สลับและทำตัวพิมพ์ให้เป็นตัวพิมพ์ใหญ่
  • สร้าง atoi ด้วยตนเองและรหัส ROT13

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

บทเรียน “การสร้างเครื่องมืออักขระ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างเครื่องมืออักขระ”

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

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

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

บทเรียน “การสร้างเครื่องมืออักขระ” ใช้เวลานานแค่ไหน

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

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

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

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

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