Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <inttypes.h> (C99) > strtoimax

strtoimax() fonksiyonu

Bildirim

intmax_t strtoimax(const char* nptr, char** endptr, int base); (C99)

Açıklama

İlk parametre olan nptr işaretçisine geçirilen karakter dizisini yine üçüncü parametre olan base değerinde yer alan sayı tabanına uygun olarak sayıya çevirir ve intmax_t bir değer geri döndürür.

Aynı zamanda ilk parametrede gösterilen dizide yer alan son geçerli sayısal karakterden sonraki ilk karakterin adresini endptr ile gösterilen ikinci parametreye atar. Eğer endptr NULL bir değer taşıyorsa, böyle bir işlem yapılmaz.

intmax_t veri türü stdint.h başlık dosyasında tanımlanmış olup 64 bit uzunluğundaki long long int veri türüne karşılık gelmektedir. Sayı aralığı −9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 değerleri arasında yer almaktadır.

Parametreler

nptr: Sayıya çevrilecek karakter dizisini gösteren işaretçidir.

endptr: Bir karakter adresini gösteren işaretçi işaretçisidir.

base: Çevrilecek sayı tabanının int değeridir.

Dönüş değeri

Eğer fonksiyon başarılı bir şekilde çalışırsa, çevrilen int değer geri döndürülür.

Eğer dönüştürülen değer karşılık gelen dönüş türünün değer aralığının dışına çıkarsa, bir hata oluşur ve bir hata mesajı geri döndürülür.

Eğer sayıya çevirme işlemi gerçekleşmezse, 0 değeri geri döndürülür.

Örnek


#include <stdio.h>
#include <inttypes.h>

int main(void) {
    char *cdizi = "5368764";
    char *endptr;

    printf("Sayı değeri: %lld", strtoimax(cdizi, &endptr, 10));

    return 0;
}

Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:

Sayı değeri: 5368764

Yukarıdaki program, strtoimax() fonksiyonu ile bir karakter dizisini bir sayıya çevirerek ekrana yazar.