Zig Academy · Lezione

Confrontare e cercare byte

Usare gli helper di std.mem sulle stringhe

Lezione 3 di 413 passaggi

Confrontare e cercare byte è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

Non è possibile usare ==

Due slice sono finestre diverse, quindi == confronta puntatori e lunghezze, non i contenuti. Per confrontare il testo serve un vero controllo byte per byte.

std.mem in soccorso

Il modulo della libreria standard std.mem opera su slice di qualsiasi tipo di elemento, incluse le stringhe []const u8.

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

eql confronta i contenuti

Usi mem.eql per verificare se due slice contengono gli stessi byte nello stesso ordine. Restituisce un semplice bool su cui è possibile diramare il flusso.

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

Passare il tipo dell'elemento

Molti strumenti di std.mem ricevono il tipo dell'elemento come primo argomento. Per le stringhe questo argomento è sempre u8, in accordo con []const u8.

Trovare una sottostringa

Cerchi del testo all'interno di altro testo con indexOf. Restituisce un indice opzionale: la posizione della prima corrispondenza, oppure null se assente.

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

Gestire null

Poiché indexOf restituisce un valore optional, lo estragga con if o orelse. Un risultato null significa semplicemente che l'ago di ricerca non è stato trovato.

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

Cercare dalla fine

Le serve l'ultima occorrenza invece della prima? Usi lastIndexOf, che esegue la scansione all'indietro e restituisce anch'esso un indice opzionale.

Prefisso e suffisso

Verifichi come inizia o termina una stringa con startsWith e endsWith. Entrambi ricevono u8 e restituiscono un bool chiaro, perfetto per il parsing.

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

Ricerca di un singolo byte

Per trovare un byte anziché una sottostringa, usi indexOfScalar. È il percorso rapido quando serve un solo carattere.

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

Contare le occorrenze

Usi mem.count per contare quante volte compare un ago di ricerca nel testo. Restituisce un usize, mai null, anche quando il conteggio è zero.

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

Sensibilità alle maiuscole

Questi strumenti distinguono tra maiuscole e minuscole: A e a sono byte diversi. Normalizzi prima la forma se desidera una corrispondenza senza distinzione tra maiuscole e minuscole.

Controllo rapido

Vuole sapere se due stringhe contengono esattamente lo stesso testo.

Riepilogo

Ha confrontato il testo con mem.eql e lo ha cercato usando indexOf, startsWith, indexOfScalar e count, gestendo sia null sia le maiuscole. 🔍

Gratis per iniziare

Impara Zig con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Confrontare e cercare byte» è gratuita?

Sì — il testo completo di «Confrontare e cercare byte» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «Confrontare e cercare byte»?

Usare gli helper di std.mem sulle stringhe Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Confrontare e cercare byte»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Le stringhe sono []const u8
  2. Letterali stringa ed escape
  3. Confrontare e cercare byte
  4. Formattare il testo con std.fmt
← Torna a Zig Academy