CodeBlanks Logo Icon CodeBlanks

sprintf

  • C kursu
  • Başlangıç
  • Ders 91/116
  • 5 dk

sprintf ile biçimli dize oluşturmayı öğrenirsin.

sprintf: dizeye biçimli yazma

sprintf fonksiyonu printf gibi çalışır ama sonucu ekrana değil, bir dize tamponuna yazar. <stdio.h> başlığıyla gelir. İmzası int sprintf(char *buf, const char *fmt, ...) biçimindedir.

char buf[64];
int age = 25;
sprintf(buf, "Yas: %d", age);
// buf = "Yas: 25"

İlk argüman hedef tampon, ikincisi biçim dizesi, sonrakıler ise değerlerdir. Dönüş değeri yazılan karakter sayısıdır. Tamponun yeterince büyük olduğundan emin olmalısın; aksi halde bellek taşması olur.

sprintf ile metin birleştirme

sprintf ile birden fazla parçayı tek bir dizede birleştirebilirsin. Bu, printf'in ekrana yazmak yerine tampona yazılmış halidir.

char buf[128];
char *name = "Ayse";
int score = 95;
sprintf(buf, "Oyuncu: %s, Puan: %d", name, score);
printf("%s\n", buf);

Burada name ve score tek bir dize haline gelir. sprintf'in dönüş değerini kullanarak yazılan uzunluğu da öğrenebilirsin. Bu yöntem, çok sayıda parçayı tek satırda birleştirmenin en temiz yoludur.

Uygulama Bir tamponu yaş bilgisiyle doldur

Bir char buf[64] tamponu tanımla. int age = 25 değişkenini sprintf ile "Yas: 25" biçiminde tampona yaz. Sonra printf ile tamponu ekrana yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

int main(void) {
    int age = 25;
    /* Bir tampon tanımla; sprintf ile yaş bilgisini yaz; printf ile yazdır */
    return 0;
}

Örnek çözüm

main.c
char buf[64];
sprintf(buf, "Yas: %d", age);
printf("%s\n", buf);

Beklenen çıktı

Yas: 25

Soru ve cevaplar

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

1 Boşluğu doldur: sprintf çağrısı

Soru
char buf[64];
int age = 25;
____(buf, "Yas: %d", age);
Cevap
char buf[64];
int age = 25;
sprintf(buf, "Yas: %d", age);

Açıklama: sprintf bir tampona yazar.

2 Biçim belirtici ve tür eşleştir

Kavram Anlamı
%d int
%s dize
%f double
%c char

3 sprintf çağrısı ne döndürür?

  • Yazılan dizeyi
  • Bir işaretçi
  • Bir hata kodunu
  • Yazılan karakter sayısını Doğru cevap

Açıklama: sprintf yazılan karakter sayısını döndürür.

Başlangıç bölümündeki tüm dersler