Baytları Karşılaştırma ve Arama
Dizelerde std.mem yardımcılarını kullanın.
Baytları Karşılaştırma ve Arama, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
You Cannot Use ==
Two slices are different windows, so == compares pointers and lengths, not contents. Comparing text needs a real byte-by-byte check.
std.mem to the Rescue
The standard library module std.mem works on slices of any element type, and that includes your []const u8 strings.
const std = @import("std");
const mem = std.mem;eql Compares Contents
Use mem.eql to test whether two slices hold the same bytes in the same order. It returns a plain bool you can branch on.
mem.eql(u8, "zig", "zig"); // truePass the Element Type
Many std.mem helpers take the element type as their first argument. For strings that argument is always u8, matching []const u8.
Find a Substring
Search for text inside text with indexOf. It returns an optional index: the position of the first match, or null if absent.
mem.indexOf(u8, "hello", "ll"); // 2Handle the null
Because indexOf returns an optional, unwrap it with if or orelse. A null result simply means the needle was not found.
if (mem.indexOf(u8, h, n)) |i| {
// found at i
}Search from the End
Need the last occurrence instead of the first? Reach for lastIndexOf, which scans backward and returns an optional index too.
Prefix and Suffix
Check how a string begins or ends with startsWith and endsWith. Both take u8 and return a clean bool, perfect for parsing.
mem.startsWith(u8, "main.zig", "main");Single-Byte Search
To locate one byte rather than a substring, use indexOfScalar. It is the fast path when you only need a single character.
mem.indexOfScalar(u8, "a,b", ',');Count Occurrences
Use mem.count to tally how many times a needle appears in the text. It returns a usize, never null, even when the count is zero.
mem.count(u8, "aaa", "a"); // 3Case Sensitivity
These helpers are case-sensitive: A and a are different bytes. Normalize case first if you want a case-insensitive match.
Quick Check
You want to know if two strings contain exactly the same text.
Recap
You compared text with mem.eql and searched it using indexOf, startsWith, indexOfScalar, and count, all aware of null and case. 🔍
Sıkça Sorulan Sorular
“Baytları Karşılaştırma ve Arama” dersi ücretsiz mi?
Evet — “Baytları Karşılaştırma ve Arama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.
“Baytları Karşılaştırma ve Arama” dersinde ne öğreneceğim?
Dizelerde std.mem yardımcılarını kullanın. Zig Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Zig Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Zig Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Baytları Karşılaştırma ve Arama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Zig Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Zig Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Dizeler []const u8 Türündedir
- Dize Değişmezleri ve Kaçışlar
- Baytları Karşılaştırma ve Arama
- std.fmt ile Metin Biçimlendirme