แปลงสตริงเป็นตัวเล็ก

C:
แปลงสตริงเป็นตัวเล็ก

วิธีการ:

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

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

void toLowerCase(char *str) {
    while (*str) {
        *str = tolower(*str);
        str++;
    }
}

int main() {
    char text[] = "Hello, World!";
    printf("Original: %s\n", text);

    toLowerCase(text);
    printf("Lowercase: %s\n", text);

    return 0;
}

ผลลัพธ์ตัวอย่าง:

Original: Hello, World!
Lowercase: hello, world!

ในตัวอย่างนี้ ฟังก์ชัน toLowerCase จะทำการลูปผ่านแต่ละอักขระของสตริงที่นำเข้ามา โดยการแปลงเป็นตัวอักษรตัวพิมพ์เล็กที่เทียบเท่าโดยใช้ฟังก์ชัน tolower จาก ctype.h การเปลี่ยนแปลงนี้ทำในที่เดียวกัน ทำให้ข้อความดั้งเดิมเปลี่ยนไป

ศึกษาเพิ่มเติม

ฟังก์ชัน tolower ที่ใช้ในตัวอย่างข้างต้นเป็นส่วนหนึ่งของไลบรารีมาตรฐานของภาษา C โดยเฉพาะอยู่ในไฟล์ส่วนหัว ctype.h ฟังก์ชันนี้ทำงานตาม locale ปัจจุบัน แต่สำหรับ locale มาตรฐานของ “C” ฟังก์ชันจะจัดการกับเซตอักขระ ASCII ซึ่งตัวอักษร ‘A’ ถึง ‘Z’ จะถูกแปลงเป็น ‘a’ ถึง ‘z’

ในอดีต การจัดการกับการเข้ารหัสอักขระและการแปลงเคสในภาษา C มีความสัมพันธ์อย่างแน่นหนากับเซตอักขระ ASCII ทำให้มีประโยชน์จำกัดในการประยุกต์ใช้งานระหว่างประเทศหรือในสถานการณ์ที่มีการใช้งานอักขระนอกเซต ASCII ภาษาโปรแกรมมิ่งสมัยใหม่อาจมีเมธอดของสตริงในตัวเพื่อทำการแปลงค่าโดยพิจารณาถึง locale และอักขระ Unicode ซึ่งภาษา C ขาดหายไปโดยเนื้อแท้

ในสถานการณ์ที่ต้องการการจัดการข้อความอย่างกว้างขวาง โดยเฉพาะกับอักขระที่ไม่ใช่ ASCII โปรแกรมเมอร์อาจพิจารณาใช้ไลบรารีที่มีการสนับสนุนด้านการระลึกถึงสากล เช่น ICU (International Components for Unicode) อย่างไรก็ตาม สำหรับแอปพลิเคชันส่วนใหญ่ที่จัดการกับข้อความ ASCII วิธีการที่นำเสนอนี้เป็นวิธีที่มีประสิทธิภาพและตรงไปตรงมา ซึ่งเน้นให้เห็นถึงความโน้มเอียงของภาษา C ในการให้โปรแกรมเมอร์ควบคุมการจัดการข้อมูล แม้ว่าจะต้องใช้ความพยายามมากขึ้นเมื่อเปรียบเทียบกับภาษาระดับสูง