Hogyan lehet felosztani karakterláncokat az strtok() segítségével a C programozásban?

Hogyan Lehet Felosztani Karakterlancokat Az Strtok Segitsegevel A C Programozasban



Húrok felosztása számos okból fontos, például szövegfeldolgozás, adatelemzés vagy elemzés, és a C programozási nyelv számos módot kínál ennek a feladatnak a kezelésére. Azonban a legnépszerűbb C függvény, amely lehetővé teszi hasító húr több tokenbe egy megadott határolóval van strtok() . Könyvtári függvényként elérhető a szabványos C könyvtárban, amely támogatja a karakterlánc-műveleteket.

Hogyan működik az strtok() függvény?

Egy karakterlánc felosztásához a strtok() , először meg kell értened, hogyan működik. A strtok() karakterenként olvassa be a bemeneti karakterláncot, amíg el nem jön egy határoló. Ha talál egy határolót, strtok() lecseréli egy „\0” null karakterre, gyakorlatilag két részre osztja az eredeti karakterláncot. Ezután a függvény visszaadja a karakterlánc első karakterére mutató mutatót. A strtok() a függvény szintaxisa:

strtok ( char * str , const char * megosztom ) ;

A strtok() A függvény két argumentumot vesz fel: egy mutatót a tokenkészlet első tokenjére és egy karakterláncot, amely a határoló karaktereket tartalmazza. A következő tokenre mutató mutatót ad vissza, amely közvetlenül az utolsó tokent szétválasztó határoló után kezdődik. NULL-t ad vissza, ha nincs több token.







Hogyan lehet stringeket felosztani a Strtok() segítségével a C programozásban?

Itt van egy példa a használatára strtok() egy karakterlánc felosztása:



#include

#include

int fő- ( ) {

char bemenet [ ] = 'Linux, tipp' ;

char * jelképes ;

jelképes = strtok ( bemenet , ',' ) ;

míg ( jelképes != NULLA ) {

printf ( '%s \n ' , jelképes ) ;

jelképes = strtok ( NULLA , ',' ) ;

}

Visszatérés 0 ;

}

A fenti példában először deklarálunk egy mutatót egy karakterre. Utána használjuk strtok() hogy a bemeneti karakterláncot tokenekre bontsa. Az első hívás strtok() két argumentumot használ: a bemeneti karakterláncot és a „,” elválasztó karakterláncot. Az első token, a „Linux” az strtok() mutatóként tér vissza . Ezután egy while ciklust használunk a bemeneti karakterlánc iterálásához, a segítségével strtok() egy NULL mutatóval a fennmaradó tokenek felosztásának folytatásához. A határoló karakterlánc ismét átadásra kerül argumentumként strtok() a határoló karakterek jelzésére.



Kimenet





A Strtok() függvény korlátai

1: Módosítja az eredeti karakterláncot

A strtok() függvény nem adja vissza a karakterlánc másolatát; ehelyett az eredeti karakterláncot módosítja. Ezért, ha a felosztás után módosítatlan verzióra van szüksége a karakterláncról, akkor a meghívás előtt készítsen másolatot az eredeti karakterláncról. strtok() .



2: Aszinkron

Az egyik jelentős korlátozás strtok() az, hogy egyszerre csak egy karakterláncon használható. Más szavakkal, nem használhatja több karakterlánc egyidejű tokenizálására.

3: Korlátozott kapacitás

Egy másik lehetséges korlát az strtok() korlátozott kapacitással rendelkezik az ismételt határolók kezelésére. Például, ha a karakterláncban egymást követő szóközök vannak a szavak között, strtok() egyetlen határolóként kezeli. Az ilyen esetek kezeléséhez más megközelítést kell alkalmaznia.

Következtetés

A strtok() A függvény nagyon hasznos funkció a karakterláncok felosztására a C programozásban. Egy bemeneti karakterláncot és egy határoló karakterláncot vesz fel, és egy mutatót ad vissza a bemeneti karakterláncban található első tokenre. strtok() destruktív, ezért ha meg kell őrizni az eredeti karakterlánc sértetlenségét, javasoljuk, hogy készítsen belőle egy másolatot. Most, hogy tudja, hogyan kell csinálni, bármilyen zsinórt kisebb darabokra vághat a feldolgozáshoz.