Cara Menggunakan Fungsi Itoa dalam C

Cara Menggunakan Fungsi Itoa Dalam C



Bahasa pengaturcaraan C telah dilancarkan lebih lima dekad yang lalu. Sejak itu, ia telah mendapat populariti yang besar dalam dunia pengaturcaraan. Ia mengatasi bahasa lain kerana ciri-cirinya termasuk kesederhanaan struktur, fungsi, mudah alih, pengurusan memori yang cekap, dll. Walaupun mempunyai pelbagai ciri lain, fungsi dalam C ialah aset paling menonjol yang membantu ramai pengguna menulis coretan kod yang mantap.

Tambahan pula, itoa ialah fungsi bukan standard yang digunakan secara meluas yang bertindak sebagai penukar jenis data. Ia mengambil jenis data int sebagai input dan menukarnya kepada rentetan. Namun, ramai di antara anda tidak tahu kegunaannya. Oleh itu, panduan ini menerangkan secara ringkas cara menggunakan fungsi itoa dalam C tanpa sebarang masalah.







Cara Menggunakan Fungsi Itoa dalam C

Mari kita mulakan dengan asas. Berikut ialah sintaks mudah untuk fungsi itoa:



int utama ( ) {

int pada satu = 12345 ;
char str [ dua puluh ] ;
lemas ( pada satu , str , 10 ) ;
printf ( 'Integer: %d \n Rentetan: %s \n ' , pada satu , str ) ;
kembali 0 ;


}

Dalam program yang diberikan, butiran adalah seperti berikut:



  1. num ialah integer
  2. str ialah watak
  3. 10 ialah bass

Sekarang, mari kita bergerak ke hadapan, menulis program, dan melaksanakan fungsi itoa. Sebagai contoh, kita perlu menulis program untuk menukar nombor yang dimasukkan ke dalam rentetan.





#include

#include

batal lemas ( int pada satu , char * str , int asas ) {

int i = 0 ;
int adalahNegatif = 0 ;

jika ( pada satu == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
kembali ;
}


jika ( pada satu < 0 && asas != 10 ) {

adalahNegatif = 1 ;
pada satu = - pada satu ;
}

sementara ( pada satu != 0 ) {
int rem = pada satu % asas ;

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

pada satu = pada satu / asas ;
}

jika ( adalahNegatif && asas == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int mulakan = 0 ;
int tamat = i - 1 ;


sementara ( mulakan < tamat ) {

char temp = str [ mulakan ] ;
str [ mulakan ] = str [ tamat ] ;
str [ tamat ] = temp ;
mulakan ++;
tamat --;
}
}

int utama ( ) {
int pada satu ;
printf ( 'Masukkan integer: ' ) ;

jika ( scanf ( '%d' , & pada satu ) != 1 ) {
fprintf ( stderr , 'Input tidak sah. Sila masukkan integer. \n ' ) ;
kembali EXIT_FAILURE ;
}

int max_size = snprintf ( NULL , 0 , '%d' , pada satu ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;

jika ( str == NULL ) {
fprintf ( stderr , 'Peruntukan memori gagal \n ' ) ;
kembali EXIT_FAILURE ;
}


lemas ( pada satu , str , 10 ) ;

printf ( 'Integer: %d \n Rentetan: %s \n ' , pada satu , str ) ;

percuma ( str ) ;

kembali 0 ;


}

Dalam program sebelumnya, itoa (int num, char *str, int base) ialah fungsi itoa. Selain itu, sintaks berikut secara langsung memberikan sifar kepada hasil apabila nombor input juga sifar:

jika ( pada satu == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
kembali ;


}

Apabila nombor input negatif dan asasnya juga bukan 10, baris program berikut akan menetapkan bendera negatif:



jika ( pada satu < 0 && asas != 10 ) {

adalahNegatif = 1 ;
pada satu = - pada satu ;

Gelung berikut memproses semua digit dan menukarnya kepada aksara yang sepadan. Oleh itu, untuk tapak yang lebih besar daripada 10, atur cara menggunakan huruf 'a' hingga 'f' untuk digit 10 hingga 15.

}

sementara ( pada satu != 0 ) {

int rem = pada satu % asas ;

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

pada satu = pada satu / asas ;

}

Apabila nombor asalnya negatif dan asasnya ialah 10, program akan menambahkan tanda negatif pada rentetan hasil.

jika ( adalahNegatif && asas == 10 )

str [ i ++ ] = '-' ;

Baris berikut menamatkan rentetan hasil dan kemudian membalikkannya apabila digit diperoleh dalam susunan terbalik semasa proses penukaran:

str [ i ] = ' \0 ' ;

// Balikkan rentetan

int mulakan = 0 ;

int tamat = i - 1 ;

sementara ( mulakan < tamat ) {

char temp = str [ mulakan ] ;
str [ mulakan ] = str [ tamat ] ;
str [ tamat ] = temp ;
mulakan ++;
tamat --;


}

Oleh itu, atur cara mengambil integer sebagai input dan memperuntukkan memori untuk perwakilan rentetan. Selepas itu, ia memanggil itoa untuk menukar integer kepada rentetan dan mencetak integer asal. Akhirnya, ia membebaskan memori yang diperuntukkan. Sebagai contoh, mari berikan nombor kepada program:

Walau bagaimanapun, jika anda memasukkan nombor bukan integer, program akan menunjukkan hasil berikut:

Kesimpulan

Beginilah cara anda boleh melaksanakan dan menggunakan fungsi itoa dengan mudah dalam C. Kami menggunakan contoh terperinci yang mengandungi berbilang fungsi untuk menukar integer kepada rentetan. Ingat, ia hanya contoh, tetapi anda boleh menggabungkan fungsi itoa dengan pelbagai fungsi untuk menulis program yang menakjubkan.