SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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.

Cùng chuyên mục:

Các hàm xử lý mảng đa chiều (array.h) trong C/C++

Các hàm xử lý mảng đa chiều (array.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

Top