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
#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
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ı
char buf[64];
int age = 25;
____(buf, "Yas: %d", age);
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.