Zig Academy · Oppitunti

Tavujen vertailu ja haku

Käyttäkää std.mem-apufunktioita merkkijonoille.

Oppitunti 3/413 vaihetta

Tavujen vertailu ja haku on ilmainen Zig Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Zig Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Zig Academy-kurssilla on yhteensä 4 oppituntia.

Ette voi käyttää operaattoria ==

Kaksi slicea ovat eri näkymiä, joten == vertaa osoittimia ja pituuksia, ei sisältöjä. Tekstin vertailu edellyttää varsinaista tavu tavulta tehtävää tarkistusta.

std.mem apuun

Vakiokirjaston moduuli std.mem toimii minkä tahansa alkiotyypin sliceilla, myös []const u8 -merkkijonoilla.

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

eql vertaa sisältöjä

Käyttäkää mem.eql-funktiota testaamaan, sisältävätkö kaksi slicea samat tavut samassa järjestyksessä. Se palauttaa tavallisen bool-arvon, jonka perusteella voitte haarautua.

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

Välittäkää alkiotyyppi

Monet std.mem-apufunktiot ottavat ensimmäisenä argumenttinaan alkiotyypin. Merkkijonoilla tämä argumentti on aina u8, kuten tyypissä []const u8.

Alimerkkijonon etsiminen

Etsikää tekstiä tekstin sisältä indexOf-funktiolla. Se palauttaa optional-indeksin: ensimmäisen osuman sijainnin tai null-arvon, jos osumaa ei ole.

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

null-arvon käsittely

Koska indexOf palauttaa optional-arvon, purkakaa se if- tai orelse-rakenteella. null-tulos tarkoittaa yksinkertaisesti, ettei haettua merkkijonoa löytynyt.

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

Haku lopusta alkaen

Tarvitsetteko ensimmäisen osuman sijaan viimeisen? Käyttäkää lastIndexOf-funktiota, joka käy tekstin läpi takaperin ja palauttaa myös optional-indeksin.

Etuliite ja jälkiliite

Tarkistakaa, miten merkkijono alkaa tai päättyy funktioilla startsWith ja endsWith. Molemmat ottavat u8-arvon ja palauttavat selkeän bool-arvon, mikä sopii erinomaisesti jäsentämiseen.

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

Yhden tavun haku

Kun haluatte etsiä yhtä tavua alimerkkijonon sijaan, käyttäkää indexOfScalar-funktiota. Se on nopea tapaus, kun tarvitsette vain yhden merkin.

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

Osumien laskeminen

Käyttäkää mem.count-funktiota laskemaan, kuinka monta kertaa haettava merkkijono esiintyy tekstissä. Se palauttaa usize-arvon, ei koskaan null-arvoa, vaikka määrä olisi nolla.

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

Kirjainkoon merkitys

Nämä apufunktiot ovat kirjainkoosta riippuvia: A ja a ovat eri tavuja. Muuntakaa kirjainkoko ensin, jos haluatte kirjainkoosta riippumattoman haun.

Pikatarkistus

Haluatte selvittää, sisältävätkö kaksi merkkijonoa täsmälleen saman tekstin.

Kertaus

Vertasitte tekstiä mem.eql-funktiolla ja haitte sitä funktioilla indexOf, startsWith, indexOfScalar ja count. Näissä käsitellään sekä null-arvot että kirjainkoko. 🔍

Aloita maksutta

Opi Zig tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Tavujen vertailu ja haku” ilmainen?

Kyllä – oppitunnin ”Tavujen vertailu ja haku” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Zig Academy-kurssin, päivitä CoddyKit PROhon. Zig Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Tavujen vertailu ja haku”?

Käyttäkää std.mem-apufunktioita merkkijonoille. Harjoittelet Zig Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Zig Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Zig Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Tavujen vertailu ja haku”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Zig Academy-oppitunnilla?

Kyllä. Jokainen Zig Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Merkkijonot ovat []const u8
  2. Merkkijonovakiot ja escape-merkit
  3. Tavujen vertailu ja haku
  4. Tekstin muotoilu std.fmt-funktiolla
← Takaisin: Zig Academy