Zig Academy · Lektion

Jämföra och söka bland byte

Använd hjälpfunktioner från std.mem på strängar

Lektion 3 av 413 steg

Jämföra och söka bland byte är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Zig Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Zig Academy innehåller totalt 4 lektioner.

Du kan inte använda ==

Två slicer är olika fönster, så == jämför pekare och längder, inte innehåll. För att jämföra text behövs en riktig kontroll byte för byte.

std.mem till undsättning

Standardbiblioteksmodulen std.mem fungerar med slicer av alla elementtyper, inklusive dina []const u8-strängar.

const std = @import("std");
const mem = std.mem;

eql jämför innehåll

Använd mem.eql för att testa om två slicer innehåller samma byte i samma ordning. Den returnerar en vanlig bool som du kan använda i en villkorsgren.

mem.eql(u8, "zig", "zig"); // true

Ange elementtypen

Många hjälpfunktioner i std.mem tar elementtypen som sitt första argument. För strängar är argumentet alltid u8, vilket stämmer med []const u8.

Hitta en delsträng

Sök efter text i text med indexOf. Den returnerar ett valfritt index: positionen för den första träffen eller null om den saknas.

mem.indexOf(u8, "hello", "ll"); // 2

Hantera null

Eftersom indexOf returnerar ett optional packar du upp det med if eller orelse. Resultatet null betyder helt enkelt att söktexten inte hittades.

if (mem.indexOf(u8, h, n)) |i| {
    // found at i
}

Sök från slutet

Behöver du den sista förekomsten i stället för den första? Använd lastIndexOf, som söker bakåt och också returnerar ett valfritt index.

Prefix och suffix

Kontrollera hur en sträng börjar eller slutar med startsWith och endsWith. Båda tar u8 och returnerar en tydlig bool, vilket passar perfekt vid tolkning.

mem.startsWith(u8, "main.zig", "main");

Sök efter en enda byte

Om du vill hitta en byte i stället för en delsträng använder du indexOfScalar. Det är den snabba vägen när du bara behöver ett enda tecken.

mem.indexOfScalar(u8, "a,b", ',');

Räkna förekomster

Använd mem.count för att räkna hur många gånger en söktext förekommer i texten. Den returnerar en usize, aldrig null, även när antalet är noll.

mem.count(u8, "aaa", "a"); // 3

Skiftlägeskänslighet

Dessa hjälpfunktioner är skiftlägeskänsliga: A och a är olika byte. Normalisera skiftläget först om du vill ha en skiftlägesokänslig matchning.

Snabb kontroll

Du vill veta om två strängar innehåller exakt samma text.

Sammanfattning

Du jämförde text med mem.eql och sökte i den med indexOf, startsWith, indexOfScalar och count, med hänsyn till null och skiftläge. 🔍

Gratis att börja

Lär dig Zig med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Jämföra och söka bland byte” gratis?

Ja – hela texten till ”Jämföra och söka bland byte” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Zig Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Zig Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Jämföra och söka bland byte”?

Använd hjälpfunktioner från std.mem på strängar Ni övar på Zig Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Zig Academy?

Du behöver inga förkunskaper. Utbildningen i Zig Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Jämföra och söka bland byte”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Zig Academy-lektionen?

Ja. Varje Zig Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Strängar är []const u8
  2. Strängliteraler och escape-sekvenser
  3. Jämföra och söka bland byte
  4. Formatera text med std.fmt
← Tillbaka till Zig Academy