Како поделити низове помоћу стрток() у Ц програмирању?

Kako Podeliti Nizove Pomocu Strtok U C Programiranu



Цепање жица је важан из различитих разлога као што су обрада текста, анализа података или рашчлањивање, а програмски језик Ц нуди бројне начине за решавање овог задатка. Међутим, најпопуларнија Ц функција која дозвољава цепање низа на више токена помоћу наведеног граничника је стрток() . Будући да је функција библиотеке, доступна је у стандардној Ц библиотеци која подржава операције са стринговима.

Како функционише стрток() функција?

Да бисте поделили низ помоћу стрток() , прво морате да разумете како то функционише. Тхе стрток() чита улазни низ знак по знак све док не наиђе на граничник. Када се пронађе граничник, стрток() замењује га нултим карактером '\0', ефективно раздвајајући оригинални низ на два дела. Функција тада враћа показивач на први карактер стринга. Тхе стрток() синтакса функције је:

стрток ( цхар * стр , конст цхар * Делим ) ;

Тхе стрток() функција узима два аргумента - показивач на први токен у скупу токена и стринг који садржи знакове за раздвајање. Враћа показивач на следећи токен, који почиње одмах после граничника који је поделио последњи токен. Враћа НУЛЛ ако више нема токена.







Како поделити низове помоћу Стрток() у Ц програмирању?

Ево примера како се користи стрток() да поделите низ:



#инцлуде <стдио.х>

#инцлуде <стринг.х>

инт главни ( ) {

цхар улазни [ ] = 'Линукс, савет' ;

цхар * токен ;

токен = стрток ( улазни , ',' ) ;

док ( токен != НУЛА ) {

принтф ( „%с ' , токен ) ;

токен = стрток ( НУЛА , ',' ) ;

}

повратак 0 ;

}

У горњем примеру, прво декларишемо показивач на цхар. Затим користимо стрток() да бисте поделили улазни низ на токене. Први позив од стрток() узима два аргумента: улазни низ и стринг за раздвајање „,“. Први токен, „Линук“, је онај који стрток() враћа као показивач на . Затим користимо вхиле петљу за итерацију кроз улазни низ, користећи стрток() са НУЛЛ показивачем да наставите са дељењем преосталих токена. Низ граничника се поново прослеђује као аргумент стрток() за означавање знакова за раздвајање.



Излаз





Ограничења функције Стрток().

1: Модификује оригинални стринг

Тхе стрток() функција не враћа копију стринга; уместо тога, мења оригинални стринг. Стога, ако треба да имате неизмењену верзију стринга након што сте га поделили, требало би да направите копију оригиналног стринга пре него што позовете стрток() .



2: Асинхрони

Једно значајно ограничење стрток() је да се може користити само на једном низу истовремено. Другим речима, не можете га користити за токенизацију више стрингова истовремено.

3: Ограничени капацитет

Још једно потенцијално ограничење је то стрток() има ограничен капацитет за обраду поновљених граничника. На пример, ако ваш стринг има узастопне размаке између речи, стрток() третира га као један граничник. Да бисте решили такве случајеве, мораћете да користите другачији приступ.

Закључак

Тхе стрток() функција је веома корисна функција за цепање стрингова у Ц програмирању. Узима улазни низ и стринг за раздвајање и враћа показивач на први токен пронађен у улазном низу. стрток() је деструктиван, тако да ако треба да сачувате интегритет оригиналног стринга, саветује се да уместо њега направите дупликат. Сада када знате како то да урадите, можете да исечете било коју врпцу на мање комаде за обраду.