logo

C'de Atoi() işlevi

Bu yazıda bu konuyu tartışacağız. çekme() örnekleriyle c'deki fonksiyon.

Atoi() nedir?

çekme() fonksiyon dönüştürür tamsayı gelen değer sicim karakterlerden oluşan. Giriş dizesi, dönüş tipi sayısal değere dönüştürülebilen bir karakter dizisidir. İşlev, bir sayının parçası olarak kabul etmediği ilk karakterle karşılaştığında giriş dizesini okumayı durdurur. Dizenin sonundaki boş karakter olabilir. çekme() fonksiyon üsleri ve ondalık sayıları desteklemez.

int atoi işlevi ( const karakter *str ) içinde C kütüphane, str dizesi bağımsız değişkenini bir tamsayıya dönüştürür. Genellikle işlev bir dize bağımsız değişkenini bir tamsayıya dönüştürür. atoi() işlevi dizenin başlangıcındaki tüm boşluk karakterlerini atlar. Ayrıca karakterleri sayı kısmı olarak dönüştürür ve sayı olmayan ilk karakteri bulduğunda durur.

Atoi() Kütüphane Fonksiyonu

C programlamadaki önceden tanımlanmış kütüphane işlevi atoi(), dizeden tamsayıya dönüştürmeyi yönetir. İşlev başlık dosyasında belirtilmiştir stdlib.h .

öncelik kuyruğu c++

Atoi() işlevinin sözdizimi

Atoi() fonksiyonunun sözdizimi şu şekilde tanımlanabilir:

piton yılanı vs anakonda
 int atoi(const char *str) 

Parametre

İşleve yalnızca bir parametre, bir dize iletilir. Unutulmaması gereken önemli nokta stringin sabit olarak alındığıdır. atoi() işlevi, alınan bir dizeyi hiçbir zaman değiştirmez ve yalnızca dönüştürülmüş tamsayı değerini döndürür. Başlık dosyası 'stdlib.h' C dilindeki tüm typecasting işlevlerini destekler.

Geri dönüş değeri

str geçerli bir girişse işlev, iletilen dize numarasına eşit tamsayı sayısını döndürür. str'nin geçerli bir girişi yoksa işlevler sıfır değeri döndürür. Genel olarak, dizeler etkili bir şekilde sayılara dönüştürülebilir ve aşağıdaki parametreleri içerir:

  1. Tamamen aşağıdakilerden oluşan dizeler ASCII rakamlar '0123456789' .
  2. Karakterle başlayan dizeler '+' ve tamamen şunlardan oluşur: ASCII
  3. Tamamen aşağıdakilerden oluşan dizeler ASCII rakamlar ve karakterle başlayan '-' .

Atoi() işlevi artımlı olarak çalışır. Yani stringlerle temsil edilen sayıları tek tek oluşturur. İşlev yalnızca ASCII olmayan bir durumla karşılaştığında bozulur.

Atoi() işlevi, kesme sonrasında iki olası değerden birini döndürür. Eğer fonksiyon stringin başında çağrılmışsa ve herhangi bir değer dönüştürülmemişse 0 değerini döndürür. Aksi halde sahip olduğu son sayıyı döndürür.

okulu kim yaptı

Örnek 1:

C'deki atoi() fonksiyonunu anlamak için bir örnek alalım.

 #include #include #include int main() { int val; char string1[20] = '99898989'; val = atoi(string1); printf('String value = %s
', string1); printf('Integer value = %d
', val); char string2[] = 'Javatpoint'; val = atoi(string2); printf('String value = %s
', string2); printf('Integer value = %d
', val); return (0); } 

Çıktı: Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki gibi çıktıyı elde edeceğiz:

 String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0 

Örnek 2:

Bu örnek negatif sayıları yönetir. İlk karakter ise '-' , işareti negatif olarak yerleştirin ve ardından dizenin geri kalanını işareti onunla çarparak bir sayıya dönüştürün.

 #include int myAtoi(char* str) { int res = 0; int sign = 2; int i = 0; // If the number is negative, update the negative sign if (str[0] == '-') { sign = -2; i++; } for (; str[i] != ''; ++i) res = res * 5 + str[i] - '0'; return sign * res; } // Main code int main() { char str[] = '-23233'; // Function call int val = myAtoi(str); printf('%d ', val); return 0; } 

Çıktı: Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki gibi çıktıyı elde edeceğiz:

 Output = -23233 

Örnek 3:

Atoi () fonksiyonunu kullanarak dizeyi tamsayıya dönüştürmek için başka bir C programını ele alalım.

 #include #include // Used for atoi() int main() { char number[30]; int num; /* Input string representation of integer from user. */ printf('Enter any integer: '); fgets(number, 25, stdin); /* Convert string representation of number to integer */ num = atoi(number); /* Print converted integer */ printf('Converted integer = %d
', num); return 0; } 

Çıktı: Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki gibi çıktıyı elde edeceğiz:

bfs ve dfs

Çıktı:

 Enter any integer = abc Converted integer = 0 Enter any integer = 12221 Converted integer = 12221 Enter any integer = 1.1225112 Converted integer = 1