Chuyển đổi một số thành chuỗi số tiếng Anh trong C
Trong lập trình, đôi khi mình cần chuyển đổi một số thành chuỗi số tiếng Anh để hiển thị dễ đọc và hiểu được hơn. Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để thực hiện việc này.
Chương trình chuyển đổi một số thành chuỗi số tiếng Anh trong C
Phương pháp giải quyết bài lập trình
- Mình sẽ sử dụng một mảng hai chiều để lưu trữ các chuỗi tiếng Anh tương ứng với các chữ số.
- Sau đó, mình sẽ chia nhỏ số cần chuyển đổi thành các chữ số riêng lẻ và lấy từng chữ số để lấy ra chuỗi tương ứng trong mảng đã định nghĩa.
Hãy xem cách giải như sau:
Dưới đây là một ví dụ về cách cài đặt chuyển đổi một số thành chuỗi số tiếng Anh trong ngôn ngữ lập trình C:
Bài viết này được đăng tại [free tuts .net]
#include <stdio.h> #include <string.h> // Mảng lưu trữ các chuỗi tiếng Anh tương ứng với các chữ số char *units[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; char *tens[] = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; char *teens[] = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; // Hàm chuyển đổi số thành chuỗi số tiếng Anh void numberToWords(int num) { if (num < 0 || num > 9999) { printf("Out of range\n"); return; } // Chia nhỏ số thành các chữ số riêng lẻ int thousands = num / 1000; int hundreds = (num / 100) % 10; int tens_digit = (num / 10) % 10; int units_digit = num % 10; // In ra chuỗi số tiếng Anh tương ứng if (thousands > 0) { printf("%s thousand ", units[thousands]); } if (hundreds > 0) { printf("%s hundred ", units[hundreds]); } if (tens_digit == 1) { printf("%s\n", teens[units_digit]); } else { if (tens_digit > 1) { printf("%s ", tens[tens_digit]); } if (units_digit > 0) { printf("%s\n", units[units_digit]); } else { printf("\n"); } } } int main() { int num; // Nhập số từ người dùng từ freetuts.net printf("Nhập một số (từ 0 đến 9999): "); scanf("%d", &num); // Chuyển đổi số thành chuỗi số tiếng Anh và in kết quả printf("Chuỗi số tiếng Anh: "); numberToWords(num); return 0; }
Kết quả
Khi chạy chương trình và nhập một số từ người dùng, chương trình sẽ chuyển đổi số đó thành chuỗi số tiếng Anh và hiển thị kết quả:
Nhập một số (từ 0 đến 9999): 1234 Chuỗi số tiếng Anh: one thousand two hundred thirty four
Trong bài tập này, mình đã viết một chương trình trong ngôn ngữ lập trình C để chuyển đổi một số thành chuỗi số tiếng Anh. Điều này giúp mình hiểu rõ hơn về cách thực hiện chuyển đổi số sang chuỗi và làm việc với mảng trong C.