CodeBlanks Logo Icon CodeBlanks

strcpy ve strcat

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

strcpy ile kopyalama ve strcat ile birleştirme öğrenirsin.

strcpy ile dize kopyalama

C'de dizeleri = ile sonradan kopyalayamazsın; <string.h>'daki strcpy fonksiyonunu kullanmalısın.

char src[] = "Merhaba";
char dst[20];
strcpy(dst, src);
/* dst: "Merhaba" */

Hedef dizinin kaynak dizeden en az bir eleman büyük olması gerekir (null için). Aksi halde taşma olur ve tanımsız davranış başlar.

strcat ile dize birleştirme

strcat kaynağı hedefin sonuna ekler. Hedef dizinin, sonucu taşıyacak kadar büyük olması gerekir.

char greeting[20] = "Merhaba, ";
strcat(greeting, "Ayşe");
/* greeting: "Merhaba, Ayşe" */

strcat hedefin null karakterini bulur, üzerine yazar ve yeni sona null koyar. Hedef yeterince büyük değilse taşma olur; bu yüzden boyutu hesaba katmak önemlidir.

Uygulama Ad ve soyadı birleştir

char full[40] tanımla ve strcpy ile "Ayşe" dizesini kopyala. Sonra strcat ile " Yılmaz" dizesini ekle. printf %s ile yazdır; çıktı Ayşe Yılmaz olmalı.

Başlangıç kodu

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

int main(void) {
    char full[40];
    /* strcpy ile "Ayşe" kopyala */
    /* strcat ile " Yılmaz" ekle */
    /* printf %s ile yazdır */
    return 0;
}

Örnek çözüm

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

int main(void) {
    char full[40];
    strcpy(full, "Ayşe");
    strcat(full, " Yılmaz");
    printf("%s\n", full);
    return 0;
}

Beklenen çıktı

Ayşe Yılmaz

Soru ve cevaplar

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

1 Aşağıdaki atamalardan hangisi derleme hatası verir?

  • char a[] = "Merhaba";
  • char b[20]; strcpy(b, a);
  • char c[20] = a; Doğru cevap
  • char d[] = {'A','l','i','\0'};

Açıklama: Diziler arasında = ile kopyalama yapılamaz; strcpy gerekir.

2 strcpy çağrısı

Soru
strcpy(dst, ____);  /* src'ten dst'ye kopyala */
Cevap
strcpy(dst, src);  /* src'ten dst'ye kopyala */

Açıklama: İkinci argüman kaynak, ilk argüman hedeftir.

3 strcpy ve strcat eşleştir

Kavram Anlamı
strcpy kopyala
strcat ekle
dst hedef dizi
src kaynak dizi

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