Tavujen vertailu ja haku
Käyttäkää std.mem-apufunktioita merkkijonoille.
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"); // trueVä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"); // 2null-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"); // 3Kirjainkoon 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. 🔍
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
- Merkkijonot ovat []const u8
- Merkkijonovakiot ja escape-merkit
- Tavujen vertailu ja haku
- Tekstin muotoilu std.fmt-funktiolla