CodeBlanks Logo Icon CodeBlanks

Dize arama

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

strstr ve strchr ile gelişmiş arama öğrenirsin.

strstr ile alt dize arama

strstr(haystack, needle), haystack içinde needle alt dizesini arar. Bulursa ilk eşleşmenin adresini, bulamazsa NULL döndürür.

Örnek: char *r = strstr("Merhaba dünya", "dün");. Burada r, "dünya" kısmının başlangıç adresini tutar. printf("%s\n", r); çıktısı "dünya" olur. strstr büyük/küçük duyarlıdır; "Dün" ile "dün" farklıdır. Arama sonucunu kullanmadan önce NULL kontrolü yapmak iyi bir alışkanlıktır.

strchr ile karakter arama

strchr(s, c), s dizesinde c karakterini arar. Bulursa ilk eşleşmenin adresini, bulamazsa NULL döndürür.

Örnek: char *p = strchr("Merhaba", 'a');. Burada p, ilk 'a' karakterinin adresini tutar. strstr alt dize ararken, strchr tek karakter arar. İkisi de bulamazsa NULL döner; bu yüzden sonuç kullanılmadan önce kontrol edilmelidir. Karakter arama, ayrıştırma ve biçim işlemlerinde sık kullanılır.

Uygulama Alt dizeyi bul ve yazdır

char *r = strstr("Merhaba dünya", "dün"); ile alt dizeyi ara. printf("%s\n", r); ile bulunan kısmı yazdır. <string.h> başlık dosyasını ekle.

Başlangıç kodu

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

// strstr ile "dün" alt dizesini ara
// printf ile bulunan kısmı yazdır

int main(void) {
    return 0;
}

Örnek çözüm

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

int main(void) {
    char *r = strstr("Merhaba dünya", "dün");
    printf("%s\n", r);
    return 0;
}

Beklenen çıktı

dünya

Soru ve cevaplar

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

1 strstr çağrısını tamamla

Soru
char *r = ____("Merhaba dünya", "dün");
Cevap
char *r = strstr("Merhaba dünya", "dün");

Açıklama: Alt dize arama fonksiyonu strstr'dir.

2 Arama fonksiyonlarını eşle

Kavram Anlamı
strstr Alt dize arar
strchr Karakter arar
NULL dönüş Bulunamadı
adres dönüş Bulundu

3 strstr bulamazsa ne döndürür?

  • Boş dize
  • NULL Doğru cevap
  • -1
  • 0 indeksi

Açıklama: strstr bulamazsa NULL döner; bu yüzden sonuç kullanılmadan önce kontrol edilmeli.

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