Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Nắm vững hàm Itoa trong C:Hướng dẫn thực hành

Nắm vững hàm Itoa trong C:Hướng dẫn thực hành

Ngôn ngữ lập trình C đã được ra mắt cách đây hơn 5 thập kỷ. Kể từ đó, nó đã trở nên phổ biến rộng rãi trong thế giới lập trình. Nó vượt trội hơn các ngôn ngữ khác nhờ các tính năng bao gồm cấu trúc đơn giản, chức năng, tính di động, quản lý bộ nhớ hiệu quả, v.v. Mặc dù có nhiều tính năng khác, các hàm trong C là tài sản nổi bật nhất hỗ trợ nhiều người dùng viết các đoạn mã mạnh mẽ.

Hơn nữa, itoa là một hàm phi tiêu chuẩn được sử dụng rộng rãi, hoạt động như một công cụ chuyển đổi kiểu dữ liệu. Nó lấy kiểu dữ liệu int làm đầu vào và chuyển đổi nó thành một chuỗi. Tuy nhiên, nhiều bạn chưa biết công dụng của nó. Do đó, hướng dẫn này giải thích ngắn gọn cách sử dụng hàm itoa trong C mà không gặp rắc rối.

Hãy bắt đầu với những điều cơ bản. Đây là cú pháp đơn giản cho hàm itoa:

int main() {

    int num =12345;
    char str[20];
    itoa(num, str, 10);
    printf("Số nguyên:%d\nChuỗi:%s\n", num, str);
    trả về 0;

Trong chương trình đã cho, chi tiết như sau:

  1. num là số nguyên
  2. str là ký tự
  3. 10 là âm trầm

Bây giờ, hãy tiếp tục, viết chương trình và triển khai hàm itoa. Ví dụ:chúng ta cần viết chương trình để thay đổi các số đã nhập thành chuỗi.

#include

#include

void itoa(int num, char *str, int base) {

    int tôi =0;
    int isNegative =0;

    nếu (num ==0) {
        str[i++] ='0';
        str[i] ='\0';
        trở lại;
   

    if (num <0 &&base !=10) {

        isNegative =1;
        số =-num;
   

    trong khi (num !=0) {
        int rem =num % cơ sở;

        str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

        num =số/cơ số;
   

    if (isNegative &&base ==10)
        str[i++] ='-';

    str[i] ='\0';

    int bắt đầu =0;
    int end =i - 1;

    trong khi (bắt đầu

        char temp =str[bắt đầu];
        str[bắt đầu] =str[kết thúc];
        str[end] =tạm thời;
        bắt đầu++;
        kết thúc--;
    }

int chính() {
    int số;
    printf("Nhập số nguyên:");
   
    if (scanf("%d", &num) !=1) {
        fprintf(stderr, "Đầu vào không hợp lệ. Vui lòng nhập số nguyên.\n");
        trả về EXIT_FAILURE;
   

    int max_size =snprintf(NULL, 0, "%d", num) + 1;
    char *str =(char *)malloc(max_size);

    nếu (str ==NULL) {
        fprintf(stderr, "Việc cấp phát bộ nhớ không thành công\n");
        trả về EXIT_FAILURE;
   

    itoa(num, str, 10);

    printf("Số nguyên:%d\nString:%s\n", num, str);

    miễn phí(str);

    trả về 0;

Trong chương trình trước, itoa (int num, char *str, int base) là hàm itoa. Hơn nữa, cú pháp sau gán trực tiếp số 0 cho kết quả khi số đầu vào cũng bằng 0:

nếu (num ==0) {

    str[i++] ='0';
    str[i] ='\0';
    trở lại;

Khi số đầu vào âm và cơ số cũng không phải là 10, các dòng chương trình sau sẽ đặt cờ âm:

if (num <0 &&base !=10) {

    isNegative =1;
    số =-num;

Vòng lặp sau xử lý tất cả các chữ số và chuyển đổi chúng thành ký tự tương ứng. Do đó, đối với các cơ số lớn hơn 10, chương trình sử dụng các chữ cái “a” đến “f” cho các chữ số từ 10 đến 15.

trong khi (num !=0) {

    int rem =num % cơ sở;

    str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

    num =số/cơ số;
   

Khi số ban đầu là âm và cơ số là 10, chương trình sẽ thêm dấu âm vào chuỗi kết quả.

if (isNegative &&base ==10)

    str[i++] ='-';

Các dòng sau kết thúc chuỗi kết quả và sau đó đảo ngược chuỗi đó khi các chữ số thu được theo thứ tự ngược lại trong quá trình chuyển đổi:

str[i] ='\0';

// Đảo ngược chuỗi

int bắt đầu =0;

int end =i - 1;

trong khi (bắt đầu

    char temp =str[bắt đầu];
    str[bắt đầu] =str[kết thúc];
    str[end] =tạm thời;
    bắt đầu++;
    kết thúc--;

Do đó, chương trình lấy số nguyên làm đầu vào và cấp phát bộ nhớ để biểu diễn chuỗi. Sau đó, nó gọi itoa để chuyển số nguyên thành chuỗi và in số nguyên ban đầu. Cuối cùng, nó giải phóng bộ nhớ được phân bổ. Ví dụ:hãy đưa ra một số cho chương trình:

Nắm vững hàm Itoa trong C:Hướng dẫn thực hành

Tuy nhiên, nếu bạn nhập số không nguyên thì chương trình sẽ hiển thị kết quả như sau:

Nắm vững hàm Itoa trong C:Hướng dẫn thực hành

Kết luận

Đây là cách bạn có thể dễ dàng triển khai và sử dụng hàm itoa trong C. Chúng tôi đã sử dụng một ví dụ chi tiết chứa nhiều hàm để chuyển đổi số nguyên thành chuỗi. Hãy nhớ rằng đây chỉ là một ví dụ nhưng bạn có thể kết hợp hàm itoa với nhiều hàm khác nhau để viết những chương trình tuyệt vời.

Giới thiệu về tác giả

Nắm vững hàm Itoa trong C:Hướng dẫn thực hành

Prateek Jangid

Một người dùng Linux đam mê vì lý do cá nhân và nghề nghiệp, luôn khám phá những điều mới mẻ trong thế giới Linux và chia sẻ với độc giả của mình.