CodeBlanks Logo Icon CodeBlanks

Dize birleştirme

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

strcat ve sprintf ile dize birleştirmeyi öğrenirsin.

strcat ile birleştirme

strcat(dest, src), src dizesini dest'in sonuna ekler. dest'in yeterince büyük olması gerekir; aksi halde taşma oluşur.

Örnek: char dest[20] = "Merhaba"; strcat(dest, " dünya");. Burada dest, 20 bayt ayrılmış bir dizidir; strcat " dünya" dizesini sonuna ekler. Sonuç: "Merhaba dünya". dest sabit bir dize olamaz; çünkü strcat onu değiştirir. Bu yüzden char dest[20] gibi yazılabilir bir dizi kullanılır.

sprintf ile biçimli birleştirme

sprintf, printf gibi çalışır ama çıktıyı ekrana değil bir dizeye yazar. Birden çok parçayı tek seferde birleştirmek için idealdir.

Örnek: char buf[30]; sprintf(buf, "%s %s", "Merhaba", "dünya");. Bu, iki dizeyi aralarına boşluk koyarak birleştirir. sprintf güçlü ama tehlikelidir: çıktı boyutunu kontrol etmez. Bu yüzden modern C'de snprintf tercih edilir; ileride güvenlik dersinde göreceksin. Şimdilik sprintf ile biçimli birleştirmeyi öğrenmen yeter.

Uygulama İki dizeyi birleştir

char dest[20] = "Merhaba"; ile yazılabilir bir dizi tanımla. strcat(dest, " dünya"); ile ikinci dizeyi ekle. printf("%s\n", dest); ile yazdır. <string.h> başlık dosyasını ekle.

Başlangıç kodu

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

// 20 baytlık dest dizisi tanımla, "Merhaba" ile başlat
// strcat ile " dünya" ekle
// printf ile yazdır

int main(void) {
    return 0;
}

Örnek çözüm

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

int main(void) {
    char dest[20] = "Merhaba";
    strcat(dest, " dünya");
    printf("%s\n", dest);
    return 0;
}

Beklenen çıktı

Merhaba dünya

Soru ve cevaplar

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

1 Birleştirme araçlarını eşle

Kavram Anlamı
strcat(dest, src) Sonuna ekle
sprintf(dest, fmt, ...) Biçimli yaz
strcpy(dest, src) Kopyala
strlen(s) Boyu ölç

2 strcat hangi dizeyi değiştirir?

  • Yalnızca src'yi
  • İkisini de
  • Yalnızca dest'i Doğru cevap
  • Değiştirmez

Açıklama: strcat, src'yi dest'in sonuna ekler; yalnızca dest değişir.

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

Soru
char dest[20] = "Merhaba";
____(dest, " dünya");
Cevap
char dest[20] = "Merhaba";
strcat(dest, " dünya");

Açıklama: strcat, ikinci dizeyi birincinin sonuna ekler.

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