Kako razdeliti nize s strtok() v programiranju C?

Kako Razdeliti Nize S Strtok V Programiranju C



Razdelitev strun je pomemben zaradi različnih razlogov, kot je obdelava besedila, analiza podatkov ali razčlenjevanje, in programski jezik C ponuja številne načine za reševanje te naloge. Vendar pa je najbolj priljubljena funkcija C, ki omogoča razcepna vrvica v več žetonov z določenim ločilom je strtok() . Ker je knjižnična funkcija, je na voljo v standardni knjižnici C, ki podpira nizovne operacije.

Kako deluje funkcija strtok()?

Če želite razdeliti niz z uporabo strtok() , morate najprej razumeti, kako deluje. The strtok() bere vhodni niz znak za znakom, dokler ne naleti na ločilo. Ko je ločilo najdeno, strtok() ga nadomesti z ničelnim znakom '\0', s čimer izvirni niz dejansko razdeli na dva dela. Funkcija nato vrne kazalec na prvi znak niza. The strtok() sintaksa funkcije je:

strtok ( char * str , konst char * delim ) ;

The strtok() funkcija sprejme dva argumenta - kazalec na prvi žeton v nizu žetonov in niz, ki vsebuje ločilne znake. Vrne kazalec na naslednji žeton, ki se začne takoj za ločilom, ki je razdelil zadnji žeton. Če ni več žetonov, vrne NULL.







Kako razdeliti nize s Strtok() v programiranju C?

Tukaj je primer uporabe strtok() za razdelitev niza:



#include

#include

int glavni ( ) {

char vnos [ ] = 'Linux, namig' ;

char * žeton ;

žeton = strtok ( vnos , ',' ) ;

medtem ( žeton != NIČ ) {

printf ( '%s \n ' , žeton ) ;

žeton = strtok ( NIČ , ',' ) ;

}

vrnitev 0 ;

}

V zgornjem primeru najprej deklariramo kazalec na char. Nato uporabimo strtok() da razdelite vhodni niz na žetone. Prvi klic od strtok() sprejme dva argumenta: vhodni niz in ločilni niz »,«. Prvi žeton, »Linux«, je tisti, ki strtok() se vrne kot kazalec na . Nato uporabimo zanko while za ponavljanje skozi vhodni niz z uporabo strtok() s kazalcem NULL, da nadaljujete z delitvijo preostalih žetonov. Ločilni niz se ponovno posreduje kot argument strtok() za označevanje ločilnih znakov.



Izhod





Omejitve funkcije Strtok().

1: Spremeni izvirni niz

The strtok() funkcija ne vrne kopije niza; namesto tega spremeni izvirni niz. Če torej potrebujete nespremenjeno različico niza po njegovi razdelitvi, naredite kopijo izvirnega niza pred klicem strtok() .



2: Asinhrono

Ena pomembna omejitev strtok() je, da se lahko uporablja samo na enem nizu hkrati. Z drugimi besedami, ne morete ga uporabiti za tokenizacijo več nizov hkrati.

3: Omejena zmogljivost

Druga možna omejitev je, da strtok() ima omejeno zmogljivost za obravnavanje ponavljajočih se ločil. Če ima vaš niz na primer zaporedne presledke med besedami, strtok() obravnava kot eno samo ločilo. Če želite obravnavati takšne primere, boste morali uporabiti drugačen pristop.

Zaključek

The strtok() funkcija je zelo uporabna funkcija za razdelitev nizov v programiranju C. Vzame vhodni niz in ločilni niz ter vrne kazalec na prvi žeton, najden v vhodnem nizu. strtok() je destruktiven, zato vam svetujemo, da ustvarite dvojnik, če želite ohraniti celovitost izvirnega niza. Zdaj, ko veste, kako to storiti, lahko katero koli vrvico razrežete na manjše kose za obdelavo.