0Pricing
Zig Academy · Lección

Comparar y buscar bytes

Use las funciones auxiliares de std.mem con cadenas.

Comparar y buscar bytes es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

No puede usar ==

Dos slices son ventanas distintas, por lo que == compara punteros y longitudes, no contenidos. Comparar texto requiere una comprobación real byte a byte.

std.mem al rescate

El módulo de la biblioteca estándar std.mem funciona con slices de cualquier tipo de elemento, incluidos sus strings []const u8.

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

eql compara contenidos

Use mem.eql para comprobar si dos slices contienen los mismos bytes en el mismo orden. Devuelve un bool normal que puede usar en una ramificación.

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

Pasar el tipo de elemento

Muchos auxiliares de std.mem reciben el tipo de elemento como primer argumento. Para los strings, ese argumento siempre es u8, en consonancia con []const u8.

Buscar una subcadena

Busque texto dentro de otro texto con indexOf. Devuelve un índice opcional: la posición de la primera coincidencia o null si no existe.

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

Gestionar null

Como indexOf devuelve un valor opcional, desempaquételo con if u orelse. Un resultado null simplemente significa que no se encontró el texto buscado.

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

Buscar desde el final

¿Necesita la última aparición en lugar de la primera? Use lastIndexOf, que recorre el texto hacia atrás y también devuelve un índice opcional.

Prefijo y sufijo

Compruebe cómo comienza o termina un string con startsWith y endsWith. Ambos reciben u8 y devuelven un bool claro, perfecto para analizar texto.

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

Búsqueda de un solo byte

Para localizar un byte en lugar de una subcadena, use indexOfScalar. Es la vía rápida cuando solo necesita un carácter.

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

Contar apariciones

Use mem.count para contar cuántas veces aparece un texto buscado. Devuelve un usize, nunca null, incluso cuando el recuento es cero.

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

Distinción entre mayúsculas y minúsculas

Estos auxiliares distinguen entre mayúsculas y minúsculas: A y a son bytes diferentes. Normalice las mayúsculas antes si quiere una coincidencia que no distinga entre ellas.

Comprobación rápida

Quiere saber si dos strings contienen exactamente el mismo texto.

Resumen

Comparó texto con mem.eql y lo buscó mediante indexOf, startsWith, indexOfScalar y count, teniendo en cuenta null y las mayúsculas. 🔍

Preguntas frecuentes

¿La lección «Comparar y buscar bytes» es gratis?

Sí — el texto completo de «Comparar y buscar bytes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Comparar y buscar bytes»?

Use las funciones auxiliares de std.mem con cadenas. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Zig Academy?

No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Comparar y buscar bytes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Zig Academy?

Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Las cadenas son []const u8
  2. Literales de cadena y escapes
  3. Comparar y buscar bytes
  4. Dar formato al texto con std.fmt
← Volver a Zig Academy