strstr
- C kursu
- Başlangıç
- Ders 89/116
- 5 dk
strstr ile alt dize aramayı öğrenirsin.
strstr: alt dize arama
strstr fonksiyonu bir dize içinde başka bir dizeyi arar. İmzası char *strstr(const char *s, const char *sub) biçimindedir. <string.h> başlığıyla gelir.
char *p = strstr("merhaba dunya", "dunya");
// p, "dunya" kısmını gösterirBulunan yerin başlangıç indeksini almak için yine p - s kullanırsın. Bulunamazsa NULL döner. strchr tek karakter arar; strstr ise birden fazla karakterden oluşan alt dizeyi arar.
strstr örneği: indeks hesabı
strstr dönen işaretçiyi, dizenin başlangıcından çıkararak alt dizenin başlangıç indeksini elde edersin.
char text[] = "merhaba dunya";
char *p = strstr(text, "dunya");
long index = p - text;
// index = 8Burada "dunya" alt dizesi 8. indeksten başlar. p'nin NULL olabileceğini unutmadan, çıkarma yapmadan önce kontrol etmelisin. Bu desen, dizede bir kelimenin nerede geçtiğini bulmak için çok kullanışlıdır.
Uygulama "dunya" alt dizesinin indeksini yazdır
strstr ile "merhaba dunya" dizesindeki "dunya" alt dizesinin başlangıç indeksini bul ve printf ile yazdır. <string.h> başlığını eklemelisin.
Başlangıç kodu
#include <stdio.h>
int main(void) {
char text[] = "merhaba dunya";
/* strstr ile "dunya" başlangıç indeksini bul ve yazdır */
return 0;
}Örnek çözüm
#include <string.h>
char *p = strstr(text, "dunya");
if (p != NULL) {
printf("%ld\n", (long)(p - text));
}Beklenen çıktı
8
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Fonksiyon ve görev eşleştir
| Kavram | Anlamı |
|---|---|
strstr(s, sub) |
Alt dize arar |
strchr(s, c) |
Karakter arar |
strcmp(a, b) |
Karşılaştırır |
strlen(s) |
Uzunluğu verir |
2 strstr("merhaba", "ha") çağrısı ne döndürür?
- 0 değeri
- "ha" ile başlayan işaretçi Doğru cevap
- İlk 'h' indeksi
- NULL
Açıklama: strstr eşleşen kısmın başını işaretçi olarak verir.
3 Boşluğu doldur: strstr çağrısı
char *p = ____(text, "dunya");
char *p = strstr(text, "dunya");
Açıklama: Alt dize arayan fonksiyon.