logo

Функција Стрсеп() у Ц

Увод:

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

Овај водич ће вас научити како да делите текстове у зависности од граничника користећи метод стрсеп(). .

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

Затим ћемо применити оно што смо научили у пракси коришћењем исечака кода и графике за фрагментацију низова користећи метод стрсеп(). , што је показано на практичним примерима.

Синтакса функције Стрсеп() у језику Ц:

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

Објашњење функције Стрсеп() у Ц:

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

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

 #include 

Како користити Стрсеп() функцију језика Ц да поделите стринг на неколико фрагмената

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

крускал алгоритам

Изјављујемо да 'с_ин' низ уз текст 'Почнимо са програмирањем' анд тхе 'ин_Птр' показивач у основна функција . Тхе стрингп функције стрсеп(). улазни аргумент је овај показивач.

Као што је делим улазни аргумент за метод стрсеп(). и назначени знак за раздвајање, додатно проглашавамо 'стринг дел' са знаком за размак. Следеће проглашавамо 'о_Птр' показивач , који се користи као излазни аргумент стрсеп(). . Тхе принтф() метода користиће овај показивач као улазни аргумент да прикаже опорављени фрагмент на командној конзоли.

Након тога, након снабдевања од низа као први аргумент, 'ин_Птр' показивач као други параметар и 'о_Птр' показивач као излазни аргумент називамо функција стрсеп(). . Овај позив се обавља унутар а вхиле петља уз услов есцапе да нема више граничника када стрсеп() враћа нулти показивач.

Код за овај пример је следећи:

 #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; } 

стрсеп() дели на 'с_ин' стринг реч по реч, стварајући сваки пут нови стринг, који се затим приказује у новом реду у командној конзоли, као што је приказано испод;

Излаз:

јава стринг реплацеалл
 Let's start programming 

Закључак

У овом чланку смо показали како обрадити низове користећи функција стрсеп(). , једна од функција наведених у 'стринг.х' заглавље. Разговарали смо о теоријском оправдању за то синтакса, техника позивања , и операција . Поред тога, демонстрирали смо врсту података које сваки улазни и излазни аргумент прихвата.