logo

Strsep()-funktio C:ssä

Esittely:

jouset ovat olennainen osa ohjelmointi , koska ne mahdollistavat kommunikoinnin käyttäjille, näyttää tuloksia ja lukea tiedostoja . Ne ovat eräänlainen tiedonsyöttö- ja tulostusmekanismi. Siitä asti kun jouset joita käytetään jatkuvasti jossain määrin luomissamme ohjelmissa, merkkijonojen ja niitä käsittelevien toimintojen tehokas käsittely on ratkaisevan tärkeää.

Tämä opetusohjelma opettaa sinulle kuinka jakaa tekstit erottimien mukaan käyttämällä strsep() -menetelmä .

Käymme läpi syöttö ja lähtöargumentit varten strsep() , sen syntaksi ja teoreettinen selitys ja sallitut tietotyypit kullekin näistä argumenteista.

Seuraavaksi otamme oppimamme käytäntöön käyttämällä koodinpätkiä ja grafiikkaa pilkkomalla merkkijonoja käyttämällä strsep() -menetelmä , mikä näkyy käytännön esimerkeissä.

Strsep()-funktion syntaksi C-kielessä:

 char *strsep(char **restrict stringp, const char *restrict delim); 

Selitys C:n Strsep()-funktiosta:

  • A merkkijono hajotetaan osiin käyttämällä strsep()-funktio , alkaen ennalta määrätyllä erottimella.
  • The merkkijono viittasi stringp-tulo Tämä funktio jakaa argumentin, ja palaset yhdistetään sitten uusiksi merkkijonoiksi, jotka kaikki päättyvät nolla-merkkiin.
  • Jokainen uusi merkkijono alkaa osoite lähtöosoittimen antama ja päättyy kohtaan erotin määrittänyt jaan ja strsep() Kun erotin löytyy, funktio korvaa sen tyhjällä merkillä, joka osoittaa uuden merkkijonon lopun.
  • The stringp-osoitin asetetaan automaattisesti fragmentin alkuun sen jälkeen, kun erotinmerkki on löydetty, kun funktio palaa kutsustaan. The stringp-osoitin on nyt valmis hankkimaan seuraavan fragmentin seuraavassa funktiokutsussa. Siihen asti kun strsep() erottimet loppuvat ja palauttaa nollaosoittimen. Tämän seurauksena tämä prosessi toistetaan jokaiselle puhelulle.

On tärkeää huomata, että tämä toiminto muuttaa syöttötekstiä peruuttamattomasti korvaamalla erottimet nollamerkeillä. The 'string.h' otsikko sisältää määritelmän strsep()-funktio . Meidän on sisällytettävä se koodiimme seuraavasti, jotta voimme käyttää sitä ja muita merkkijonojen hallintatoimintoja:

 #include 

Kuinka käyttää C-kielen Strsep()-funktiota merkkijonon jakamiseen useiksi fragmenteiksi

Tässä esimerkissä lause 'Aloita ohjelmointi' luodaan merkkijonona, ja sen sisältö hajotetaan käyttämällä strsep()-funktio . Jokainen äskettäin luotu merkkijono tuotetaan sitten erilliselle riville komentopääte . Merkkijono, johon osoitti stringp syöttöparametri jaetaan sana sanalta, koska delim-syöttöargumentissa käyttämämme erotin on välilyönti ('') .

mikä on const javassa

Ilmoitamme 'synti' merkkijono tekstin mukana 'Aloita ohjelmointi' ja 'in_Ptr' -osoitin in päätoiminto . The strsep()-funktion merkkijono input argumentti on tämä osoitin.

Kuten delim input argumentti varten strsep() -menetelmä ja määritellyn erottimen, ilmoitamme lisäksi 'string del' välilyönnin kanssa. Seuraavaksi julistamme o_Ptr-osoitin , jota käytetään mm strsep():n lähtöargumentti . The printf() -menetelmä käyttää tätä osoitinta syöttöargumenttina näyttääkseen palautetun fragmentin komentokonsolissa.

Sen jälkeen toimituksen jälkeen merkkijonosta ensimmäisenä argumenttina 'in_Ptr' osoitin toiseksi parametriksi ja o_Ptr-osoitin lähtöargumentiksi kutsumme strsep()-funktio . Tämä puhelu soitetaan a kun silmukka poistumisehdon kanssa, että kun ei ole enää erottimia strsep() palauttaa nollaosoitin.

Tämän esimerkin koodi on seuraava:

 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

strep() jakaa 'synti' merkkijono sana sanalta, tuottaa joka kerta uuden merkkijonon, joka näytetään sitten uudella rivillä komentokonsolissa alla olevan kuvan mukaisesti;

verrata merkkijonoon

Lähtö:

 Let's start programming 

Johtopäätös

Tässä artikkelissa osoitimme, kuinka merkkijonoja käsitellään käyttämällä strsep()-funktio , yksi kohdassa määritellyistä toiminnoista 'string.h' otsikko. Puhuimme sen teoreettisista perusteista syntaksi, kutsutekniikka , ja operaatio . Lisäksi osoitimme, millaisia ​​tietoja kukin tulo- ja lähtöargumentti hyväksyy.