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
#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
#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
char dest[20] = "Merhaba";
____(dest, " dünya");
char dest[20] = "Merhaba";
strcat(dest, " dünya");
Açıklama: strcat, ikinci dizeyi birincinin sonuna ekler.