CodeBlanks Logo Icon CodeBlanks

Dize dönüştürme

  • C kursu
  • Orta seviye
  • Ders 21/116
  • 5 dk

atoi, atof ve strtol ile dönüştürme öğrenirsin.

atoi ile tamsayıya çevirme

atoi(s), bir dizeyi int'e çevirir. Adı "ASCII to integer" anlamına gelir. <stdlib.h> başlık dosyasında bildirilmiştir.

Örnek: int n = atoi("42");. Burada n, 42 olur. atoi başındaki boşlukları atlar ve sayıya çevirir; geçersiz girişte davranışı tanımsızdır, genelde 0 döner. Güvenli çevrim için strtol tercih edilir; hata durumunu ayrı bir parametre ile raporlar. atof ise double için benzer çalışır.

strtol ile güvenli çevrim

strtol(s, &end, 10), bir dizeyi uzun tamsayıya çevirir; ikinci parametre çevrimin nerede durduğunu, üçüncü ise tabanı (10 onluk) belirtir.

Örnek: char *end; long v = strtol("42abc", &end, 10);. Burada v, 42 olur; end, "abc" kısmını işaret eder. Bu sayede hem değer hem de kalan kısmı öğrenirsin. atoi'dan farklı olarak strtol hata durumunu açıkça raporlar; bu yüzden üretim kodunda tercih edilir. atof ise double çevrimi için benzer şekilde çalışır.

Uygulama Dizeyi int ve double'a çevir

int n = atoi("42"); ile tamsayıya çevir. double d = atof("3.14"); ile ondalığa çevir. printf("%d\n", n); ve printf("%f\n", d); ile yazdır. <stdlib.h> başlık dosyasını ekle.

Başlangıç kodu

main.c
#include <stdio.h>
#include <stdlib.h>

// atoi ile "42" dizesini int'e çevir
// atof ile "3.14" dizesini double'a çevir
// her ikisini de yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int n = atoi("42");
    double d = atof("3.14");
    printf("%d\n", n);
    printf("%f\n", d);
    return 0;
}

Beklenen çıktı

42
3.140000

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 "42" dizesini int'e çeviren fonksiyon hangisi?

  • strcat
  • strlen
  • atoi Doğru cevap
  • strstr

Açıklama: atoi, dizeyi int'e çevirir; adı ASCII to integer anlamına gelir.

2 Dönüştürme fonksiyonlarını eşle

Kavram Anlamı
atoi int çevirir
atof double çevirir
strtol long ve kalan verir
sprintf Biçimli yaz

3 atof çağrısını tamamla

Soru
double pi = ____("3.14");
Cevap
double pi = atof("3.14");

Açıklama: atof, dizeyi double'a çevirir.

Orta seviye bölümündeki tüm dersler