โจทย์
นับจำนวน: ตัวอักษร (Alphabets), ตัวเลข (Digits), อักขระพิเศษ (Special Characters) ใน String
ตรรกะการทำงาน
for (i = 0; string[i] != '\0'; i++) {
if (isalpha(string[i])) alphabets++;
else if (isdigit(string[i])) digits++;
else special++;
}
ตัวอย่างโปรแกรมสมบูรณ์ (ใช้ ctype.h)
#include <stdio.h>
#include <ctype.h> // สำหรับ isalpha, isdigit
int main() {
char string[100];
int alphabets = 0, digits = 0, special = 0;
int i;
printf("Enter a string: ");
fgets(string, sizeof(string), stdin); // ใช้ fgets แทน gets (ปลอดภัย)
// ลบ newline ถ้ามี
string[strcspn(string, "\n")] = '\0';
for (i = 0; string[i] != '\0'; i++) {
if (isalpha(string[i]))
alphabets++;
else if (isdigit(string[i]))
digits++;
else
special++;
}
printf("Alphabets: %d\n", alphabets);
printf("Digits: %d\n", digits);
printf("Special characters: %d\n", special);
return 0;
}
ผลลัพธ์ตัวอย่าง:
Enter a string: Hello World 123!
Alphabets: 10
Digits: 3
Special characters: 2
ฟังก์ชันใน <ctype.h> ที่เกี่ยวข้อง
| ฟังก์ชัน | ตรวจสอบ |
|---|---|
isalpha(c) | เป็นตัวอักษร A-Z, a-z |
isdigit(c) | เป็นตัวเลข 0-9 |
isalnum(c) | เป็นตัวอักษรหรือตัวเลข |
isspace(c) | เป็น whitespace (space, tab, newline) |
ispunct(c) | เป็นเครื่องหมายวรรคตอน |
islower(c) | เป็นตัวพิมพ์เล็ก |
isupper(c) | เป็นตัวพิมพ์ใหญ่ |