Sammenligne og søke i byte
Bruk std.mem-hjelpefunksjoner på strenger.
Sammenligne og søke i byte er en gratis leksjon i Zig Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Zig Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Zig Academy inneholder totalt 4 leksjoner.
Du kan ikke bruke ==
To slicer er forskjellige vinduer, så == sammenligner pekere og lengder, ikke innhold. For å sammenligne tekst trenger du en faktisk byte-for-byte-kontroll.
std.mem til unnsetning
Standardbiblioteksmodulen std.mem fungerer på slicer med alle elementtyper, og det inkluderer []const u8-strengene dine.
const std = @import("std");
const mem = std.mem;eql sammenligner innhold
Bruk mem.eql for å teste om to slicer inneholder de samme bytene i samme rekkefølge. Den returnerer en vanlig bool som du kan bruke i en forgrening.
mem.eql(u8, "zig", "zig"); // trueOppgi elementtypen
Mange std.mem-hjelpefunksjoner tar elementtypen som sitt første argument. For strenger er dette argumentet alltid u8, i samsvar med []const u8.
Finn en delstreng
Søk etter tekst i tekst med indexOf. Den returnerer en valgfri indeks: posisjonen til det første treffet, eller null hvis det ikke finnes.
mem.indexOf(u8, "hello", "ll"); // 2Håndter null
Fordi indexOf returnerer en optional, kan du pakke den ut med if eller orelse. Et null-resultat betyr ganske enkelt at søkestrengen ikke ble funnet.
if (mem.indexOf(u8, h, n)) |i| {
// found at i
}Søk fra slutten
Trenger du den siste forekomsten i stedet for den første? Bruk lastIndexOf, som søker bakover og også returnerer en valgfri indeks.
Prefiks og suffiks
Kontroller hvordan en streng begynner eller slutter med startsWith og endsWith. Begge tar u8 og returnerer en enkel bool, perfekt for parsing.
mem.startsWith(u8, "main.zig", "main");Søk etter én byte
For å finne én byte i stedet for en delstreng bruker du indexOfScalar. Dette er den raske veien når du bare trenger ett enkelt tegn.
mem.indexOfScalar(u8, "a,b", ',');Tell forekomster
Bruk mem.count for å telle hvor mange ganger en søkestreng forekommer i teksten. Den returnerer en usize, aldri null, selv når antallet er null.
mem.count(u8, "aaa", "a"); // 3Forskjell på store og små bokstaver
Disse hjelpefunksjonene skiller mellom store og små bokstaver: A og a er forskjellige byte. Normaliser bokstavstørrelsen først hvis du vil ha et søk som ikke skiller mellom dem.
Hurtigsjekk
Du vil vite om to strenger inneholder nøyaktig den samme teksten.
Oppsummering
Du sammenlignet tekst med mem.eql og søkte i den med indexOf, startsWith, indexOfScalar og count, med støtte for null og forskjell på store og små bokstaver. 🔍
Lær deg Zig med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Sammenligne og søke i byte» gratis?
Ja – hele teksten i «Sammenligne og søke i byte» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Zig Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Zig Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sammenligne og søke i byte»?
Bruk std.mem-hjelpefunksjoner på strenger. Du øver på Zig Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Zig Academy?
Ingen tidligere erfaring er nødvendig. Zig Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Sammenligne og søke i byte»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Zig Academy-leksjonen?
Ja. Alle Zig Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Strenger er []const u8
- Strenglitteraler og escape-sekvenser
- Sammenligne og søke i byte
- Formatere tekst med std.fmt