Membandingkan dan Mencari Byte
Gunakan pembantu std.mem pada string.
Membandingkan dan Mencari Byte adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Anda Tidak Dapat Menggunakan ==
Dua slice adalah jendela yang berbeda, sehingga == membandingkan pointer dan panjang, bukan isi. Perbandingan teks memerlukan pemeriksaan byte demi byte yang sebenarnya.
std.mem sebagai Solusi
Modul pustaka standar std.mem bekerja pada slice dengan tipe elemen apa pun, termasuk string []const u8 Anda.
const std = @import("std");
const mem = std.mem;eql Membandingkan Isi
Gunakan mem.eql untuk menguji apakah dua slice menyimpan byte yang sama dalam urutan yang sama. Fungsi ini mengembalikan bool biasa yang dapat Anda gunakan dalam percabangan.
mem.eql(u8, "zig", "zig"); // trueTeruskan Tipe Elemen
Banyak pembantu std.mem menerima tipe elemen sebagai argumen pertamanya. Untuk string, argumen tersebut selalu u8, sesuai dengan []const u8.
Menemukan Substring
Cari teks di dalam teks dengan indexOf. Fungsi ini mengembalikan indeks opsional: posisi kecocokan pertama, atau null jika tidak ada.
mem.indexOf(u8, "hello", "ll"); // 2Menangani null
Karena indexOf mengembalikan nilai opsional, buka nilainya dengan if atau orelse. Hasil null berarti needle tidak ditemukan.
if (mem.indexOf(u8, h, n)) |i| {
// found at i
}Mencari dari Akhir
Memerlukan kemunculan terakhir, bukan yang pertama? Gunakan lastIndexOf, yang memindai dari belakang dan juga mengembalikan indeks opsional.
Awalan dan Akhiran
Periksa bagaimana string dimulai atau diakhiri dengan startsWith dan endsWith. Keduanya menerima u8 dan mengembalikan bool yang sederhana, cocok untuk penguraian.
mem.startsWith(u8, "main.zig", "main");Pencarian Satu Byte
Untuk menemukan satu byte, bukan substring, gunakan indexOfScalar. Ini adalah jalur cepat saat Anda hanya memerlukan satu karakter.
mem.indexOfScalar(u8, "a,b", ',');Menghitung Kemunculan
Gunakan mem.count untuk menghitung berapa kali needle muncul dalam teks. Fungsi ini mengembalikan usize, tidak pernah null, bahkan saat hitungannya nol.
mem.count(u8, "aaa", "a"); // 3Peka Huruf Besar-Kecil
Pembantu ini peka huruf besar-kecil: A dan a adalah byte yang berbeda. Normalisasi huruf terlebih dahulu jika Anda menginginkan kecocokan yang tidak peka huruf besar-kecil.
Pemeriksaan Singkat
Anda ingin mengetahui apakah dua string berisi teks yang persis sama.
Rangkuman
Anda membandingkan teks dengan mem.eql dan mencarinya menggunakan indexOf, startsWith, indexOfScalar, serta count, dengan semuanya memperhatikan null dan huruf besar-kecil. 🔍
Belajar Zig dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membandingkan dan Mencari Byte” gratis?
Ya — teks lengkap “Membandingkan dan Mencari Byte” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membandingkan dan Mencari Byte”?
Gunakan pembantu std.mem pada string. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Membandingkan dan Mencari Byte” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- String Adalah []const u8
- Literal String dan Escape
- Membandingkan dan Mencari Byte
- Memformat Teks dengan std.fmt