C'de Itoa Fonksiyonu Nasıl Kullanılır

C De Itoa Fonksiyonu Nasil Kullanilir



C programlama dili elli yılı aşkın bir süre önce piyasaya sürüldü. O zamandan beri programlama dünyasında büyük bir popülerlik kazandı. Yapısal basitlik, işlevler, taşınabilirlik, etkili bellek yönetimi vb. gibi özellikleri nedeniyle diğer dillerden üstündür. Diğer çeşitli özelliklere sahip olmasına rağmen, C'deki işlevler, birçok kullanıcının sağlam kod parçacıkları yazmasına yardımcı olan en önemli varlıklardır.

Ayrıca itoa, veri türü dönüştürücü olarak görev yapan, yaygın olarak kullanılan standart dışı bir işlevdir. Giriş olarak int veri türünü alır ve onu bir dizeye dönüştürür. Ancak çoğunuz kullanımını bilmiyorsunuz. Bu nedenle, bu kılavuz itoa fonksiyonunun C'de sorunsuz bir şekilde nasıl kullanılacağını kısaca açıklamaktadır.







C'de Itoa Fonksiyonu Nasıl Kullanılır

Temel bilgilerle başlayalım. itoa işlevinin basit sözdizimi şöyledir:



int ana ( ) {

int birde = 12345 ;
karakter cadde [ yirmi ] ;
boğuldu ( birde , cadde , 10 ) ;
baskı ( 'Tamsayı: %d \N Teller \N ' , birde , cadde ) ;
geri dönmek 0 ;


}

Söz konusu programda detaylar şu şekildedir:



  1. num tam sayıdır
  2. str karakterdir
  3. 10 bas

Şimdi ilerleyelim, bir program yazalım ve itoa fonksiyonunu uygulayalım. Örneğin girilen sayıları string olarak değiştirecek bir program yazmamız gerekiyor.





#include

#include

geçersiz boğuldu ( int birde , karakter * cadde , int temel ) {

int Ben = 0 ;
int Negatif = 0 ;

eğer ( birde == 0 ) {
cadde [ Ben ++ ] = '0' ;
cadde [ Ben ] = ' \0 ' ;
geri dönmek ;
}


eğer ( birde < 0 && temel != 10 ) {

Negatif = 1 ;
birde = - birde ;
}

sırasında ( birde != 0 ) {
int rem = birde % temel ;

cadde [ Ben ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + '0' ;

birde = birde / temel ;
}

eğer ( Negatif && temel == 10 )
cadde [ Ben ++ ] = '-' ;

cadde [ Ben ] = ' \0 ' ;

int başlangıç = 0 ;
int son = Ben - 1 ;


sırasında ( başlangıç < son ) {

karakter sıcaklık = cadde [ başlangıç ] ;
cadde [ başlangıç ] = cadde [ son ] ;
cadde [ son ] = sıcaklık ;
başlangıç ++;
son --;
}
}

int ana ( ) {
int birde ;
baskı ( 'Bir tamsayı girin: ' ) ;

eğer ( tarama ( '%D' , & birde ) != 1 ) {
fprintf ( stderr , 'Geçersiz giriş. Lütfen bir tamsayı girin. \N ' ) ;
geri dönmek EXIT_FAILURE ;
}

int maksimum_boyut = snprintf ( HÜKÜMSÜZ , 0 , '%D' , birde ) + 1 ;
karakter * cadde = ( karakter * ) malloc ( maksimum_boyut ) ;

eğer ( cadde == HÜKÜMSÜZ ) {
fprintf ( stderr , 'Bellek tahsisi başarısız oldu \N ' ) ;
geri dönmek EXIT_FAILURE ;
}


boğuldu ( birde , cadde , 10 ) ;

baskı ( 'Tamsayı: %d \N Teller \N ' , birde , cadde ) ;

özgür ( cadde ) ;

geri dönmek 0 ;


}

Önceki programda itoa (int num, char *str, int base) itoa işlevidir. Ayrıca, aşağıdaki sözdizimi, giriş numarası da sıfır olduğunda sonuca doğrudan sıfır atar:

eğer ( birde == 0 ) {

cadde [ Ben ++ ] = '0' ;
cadde [ Ben ] = ' \0 ' ;
geri dönmek ;


}

Giriş numarası negatif olduğunda ve taban da 10 olmadığında, aşağıdaki program satırları negatif bayrağını ayarlayacaktır:



eğer ( birde < 0 && temel != 10 ) {

Negatif = 1 ;
birde = - birde ;

Aşağıdaki döngü tüm rakamları işler ve bunları karşılık gelen bir karaktere dönüştürür. Dolayısıyla program, 10'dan büyük bazlar için 10'dan 15'e kadar olan rakamlar için 'a'dan 'f'ye kadar olan harfleri kullanır.

}

sırasında ( birde != 0 ) {

int rem = birde % temel ;

cadde [ Ben ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + '0' ;

birde = birde / temel ;

}

Sayının orijinali negatif ve tabanı 10 olduğunda, program negatif işaretini sonuç dizesine ekleyecektir.

eğer ( Negatif && temel == 10 )

cadde [ Ben ++ ] = '-' ;

Aşağıdaki satırlar sonuç dizesini sonlandırır ve dönüştürme işlemi sırasında rakamlar ters sırada elde edildiğinden onu tersine çevirir:

cadde [ Ben ] = ' \0 ' ;

//Dizeyi ters çevir

int başlangıç = 0 ;

int son = Ben - 1 ;

sırasında ( başlangıç < son ) {

karakter sıcaklık = cadde [ başlangıç ] ;
cadde [ başlangıç ] = cadde [ son ] ;
cadde [ son ] = sıcaklık ;
başlangıç ++;
son --;


}

Bu nedenle program girdi olarak tamsayıyı alır ve dize gösterimi için belleği ayırır. Bundan sonra, tamsayıyı dizeye dönüştürmek için itoa'yı çağırır ve orijinal tamsayıyı yazdırır. Son olarak ayrılan hafızayı serbest bırakır. Örneğin programa bir numara verelim:

Ancak tam sayı olmayan bir sayı girerseniz program aşağıdaki sonucu gösterecektir:

Çözüm

C'de itoa fonksiyonunu bu şekilde kolayca uygulayıp kullanabilirsiniz. Tamsayıyı string'e dönüştürmek için birden fazla fonksiyon içeren detaylı bir örnek kullandık. Bunun yalnızca bir örnek olduğunu unutmayın, ancak harika programlar yazmak için itoa işlevini çeşitli işlevlerle birleştirebilirsiniz.