Cách sử dụng hàm Itoa trong C

Cach Su Dung Ham Itoa Trong C



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ột cách dễ dàng.







Cách sử dụng hàm Itoa trong C

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 chủ yếu ( ) {

int trên một = 12345 ;
ký tự str [ hai mươi ] ;
chết đuối ( trên một , str , 10 ) ;
printf ( 'Số nguyên: %d \N Dây \N ' , trên một , str ) ;
trở lại 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 một chương trình để thay đổi các số đã nhập thành chuỗi.





#include

#include

trống rỗng chết đuối ( int trên một , ký tự * str , int căn cứ ) {

int Tôi = 0 ;
int là âm tính = 0 ;

nếu như ( trên một == 0 ) {
str [ Tôi ++ ] = '0' ;
str [ Tôi ] = ' \0 ' ;
trở lại ;
}


nếu như ( trên một < 0 && căn cứ != 10 ) {

là âm tính = 1 ;
trên một = - trên một ;
}

trong khi ( trên một != 0 ) {
int rem = trên một % căn cứ ;

str [ Tôi ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'Một' : rem + '0' ;

trên một = trên một / căn cứ ;
}

nếu như ( là âm tính && căn cứ == 10 )
str [ Tôi ++ ] = '-' ;

str [ Tôi ] = ' \0 ' ;

int bắt đầu = 0 ;
int kết thúc = Tôi - 1 ;


trong khi ( bắt đầu < kết thúc ) {

ký tự nhiệt độ = str [ bắt đầu ] ;
str [ bắt đầu ] = str [ kết thúc ] ;
str [ kết thúc ] = nhiệt độ ;
bắt đầu ++;
kết thúc --;
}
}

int chủ yếu ( ) {
int trên một ;
printf ( 'Nhập một số nguyên:' ) ;

nếu như ( quét ( '%d' , & trên một ) != 1 ) {
fprintf ( lỗi chuẩn , 'Đầu vào không hợp lệ. Vui lòng nhập số nguyên. \N ' ) ;
trở lại EXIT_FAILURE ;
}

int kích thước tối đa = snprintf ( VÔ GIÁ TRỊ , 0 , '%d' , trên một ) + 1 ;
ký tự * str = ( ký tự * ) malloc ( kích thước tối đa ) ;

nếu như ( str == VÔ GIÁ TRỊ ) {
fprintf ( lỗi chuẩn , 'Cấp phát bộ nhớ không thành công \N ' ) ;
trở lại EXIT_FAILURE ;
}


chết đuối ( trên một , str , 10 ) ;

printf ( 'Số nguyên: %d \N Dây \N ' , trên một , str ) ;

miễn phí ( str ) ;

trở lại 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 như ( trên một == 0 ) {

str [ Tôi ++ ] = '0' ;
str [ Tô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:



nếu như ( trên một < 0 && căn cứ != 10 ) {

là âm tính = 1 ;
trên một = - trên một ;

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 ( trên một != 0 ) {

int rem = trên một % căn cứ ;

str [ Tôi ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'Một' : rem + '0' ;

trên một = trên một / căn cứ ;

}

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ả.

nếu như ( là âm tính && căn cứ == 10 )

str [ Tô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 [ Tôi ] = ' \0 ' ;

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

int bắt đầu = 0 ;

int kết thúc = Tôi - 1 ;

trong khi ( bắt đầu < kết thúc ) {

ký tự nhiệt độ = str [ bắt đầu ] ;
str [ bắt đầu ] = str [ kết thúc ] ;
str [ kết thúc ] = nhiệt độ ;
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:

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:

Phần 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.