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 ในการให้โปรแกรมเมอร์ควบคุมการจัดการข้อมูล แม้ว่าจะต้องใช้ความพยายามมากขึ้นเมื่อเปรียบเทียบกับภาษาระดับสูง