logo

Strsep() funkcija C

Įvadas:

Stygos yra esminė sudedamoji dalis programavimas , nes jie leidžia bendrauti su vartotojams, rodyti rezultatus ir skaityti failus . Jie yra tam tikras duomenų įvedimo ir išvesties mechanizmas. Nuo stygos yra nuolat naudojami tam tikru pajėgumu mūsų kuriamose programose, efektyvus eilučių tvarkymas ir jas apdorojančios funkcijos yra labai svarbios.

Ši pamoka išmokys jus suskirstyti tekstus pagal skyriklius naudojant strsep() metodas .

Mes eisime per įvestis ir išvesties argumentai dėl strsep() , jos sintaksė ir teorinis paaiškinimas ir leidžiamus duomenų tipus kiekvienam iš šių argumentų.

Tada mes pritaikysime tai, ko išmokome, naudodami kodo fragmentus ir grafiką, kad fragmentuotų eilutes naudodami strsep() metodas , kuris parodytas praktiniuose pavyzdžiuose.

Strsep() funkcijos sintaksė C kalba:

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

Funkcijos Strsep() paaiškinimas C:

  • A styga yra suskaidomas naudojant strsep() funkcija , pradedant iš anksto nustatytu skyrikliu.
  • The styga nurodė stringp įvestis argumentas suskaidomas naudojant šią funkciją, o dalys sujungiamos į naujas eilutes, kurios baigiasi nuliniu simboliu.
  • Kiekviena nauja eilutė prasideda adresu pateikiamą išvesties rodyklės ir baigiasi ten, kur skyriklis nurodė aš dalinuosi ir strsep() Kai randamas skyriklis, funkcija jį pakeičia nuliniu simboliu, nurodydama naujos eilutės pabaigą.
  • The stringp rodyklė automatiškai nustatomas fragmento pradžioje po to, kai atrandamas skyriklio simbolis, kai funkcija grįžta iš skambučio. The stringp rodyklė dabar yra pasirengęs gauti kitą fragmentą sekančiame funkcijos iškvietime. Iki strsep() baigiasi skiriamieji ženklai ir grąžinamas nulinis rodyklė. Dėl to šis procesas kartojamas kiekvienam skambučiui.

Svarbu pažymėti, kad ši funkcija neatšaukiamai pakeičia įvesties tekstą, pakeičiant skyriklius nuliniais simboliais. The „string.h“ antraštė yra apibrėžimas strsep() funkcija . Turime įtraukti jį į savo kodą taip, kad galėtume naudoti jį ir kitas eilučių valdymo funkcijas:

 #include 

Kaip naudoti C kalbos funkciją Strsep() norint padalinti eilutę į kelis fragmentus

Šiame pavyzdyje frazė „Pradėkime programuoti“ sukuriama kaip eilutė, o jos turinys išskaidomas naudojant strsep() funkcija . Tada kiekviena naujai sukurta eilutė sukuriama atskiroje eilutėje komandų terminalas . Styga, kurią nurodė stringp įvesties parametras išskaidomas žodis po žodžio, nes skyriklis, kurį naudojame delim įvesties argumente, yra tarpo simbolis ('') .

unix sukurti katalogą

Mes skelbiame, 's_in' eilutę kartu su tekstu „Pradėkime programuoti“ ir „in_Ptr“ rodyklė viduje pagrindinė() funkcija . The strsep() funkcijos stringp įvesties argumentas yra šis rodyklė.

Kaip ir delim įvesties argumentas strsep() metodas ir nurodytą skiriamąjį simbolį, papildomai deklaruojame 'string del' su erdvės simboliu. Toliau skelbiame „o_Ptr“ rodyklė , kuris naudojamas kaip strsep() išvesties argumentas . The printf() metodas naudos šį žymeklį kaip įvesties argumentą, kad komandų konsolėje būtų rodomas atkurtas fragmentas.

Po to, po tiekimo iš stygos kaip pirmasis argumentas, 'in_Ptr' žymeklį kaip antrąjį parametrą ir „o_Ptr“ rodyklė kaip išvesties argumentą vadiname strsep() funkcija . Šis skambutis atliekamas a o kilpa su pabėgimo sąlyga, kad nebėra skiriamųjų ženklų, kai strsep() grąžina nulinis rodyklė.

Šio pavyzdžio kodas yra toks:

 #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() dalija 's_in' eilutę žodis po žodžio, kiekvieną kartą sukuriant naują eilutę, kuri tada rodoma naujoje komandų konsolės eilutėje, kaip parodyta toliau ;

Išvestis:

 Let's start programming 

Išvada

Šiame straipsnyje mes parodėme, kaip apdoroti eilutes naudojant strsep() funkcija , viena iš funkcijų, nurodytų 'string.h' antraštę. Kalbėjomės apie teorinį jo pagrindimą sintaksė, skambinimo technika , ir operacija . Be to, parodėme, kokius duomenis priima kiekvienas įvesties ir išvesties argumentas.

abėcėlė skaičiais