logo

Функція Strsep() у C

вступ:

рядки є важливою складовою програмування , тому що вони дають можливість спілкуватися з користувачів, показувати результати та читати файли . Вони є типом механізму введення та виведення даних. Оскільки рядки постійно використовуються в певній якості в програмах, які ми створюємо, ефективне поводження з рядками та функціями, які їх обробляють, є вирішальними.

Цей підручник навчить вас розділяти тексти залежно від роздільників за допомогою метод strsep(). .

Ми переглянемо введення і вихідні аргументи для strsep() , його синтаксис і теоретичне пояснення і дозволені типи даних для кожного з цих аргументів.

Потім ми застосували те, що навчилися, на практиці, використовуючи фрагменти коду та графіку для фрагментації рядків за допомогою метод strsep(). , що продемонстровано на практичних прикладах.

Синтаксис функції Strsep() мовою C:

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

Пояснення функції Strsep() у C:

  • А рядок розбивається за допомогою функція strsep(). , починаючи з попередньо визначеного розділювача.
  • The рядок вказав на введення stringp аргумент розбивається цією функцією, а потім частини об’єднуються, щоб сформувати нові рядки, усі з яких закінчуються нульовим символом.
  • Кожен новий рядок починається з адресу задається вихідним покажчиком і закінчується там, де роздільник зазначений я ділюсь і strsep() Коли роздільник знайдено, функція замінює його нульовим символом, щоб вказати кінець нового рядка.
  • The покажчик stringp автоматично встановлюється на початку фрагмента після виявлення символу роздільника, коли функція повертається після свого виклику. The покажчик stringp тепер готовий отримати наступний фрагмент у наступному виклику функції. Поки strsep() закінчується роздільники та повертає нульовий покажчик. У результаті цей процес повторюється для кожного виклику.

Важливо відзначити, що ця функція безповоротно змінює введений текст, замінюючи розділювачі нульовими символами. The заголовок 'string.h' містить визначення функція strsep(). . Щоб використовувати його та інші функції керування рядками, ми маємо включити його в наш код наступним чином:

 #include 

Як використовувати функцію Strsep() мови C, щоб розділити рядок на кілька фрагментів

У цьому прикладі фраза «Починаємо програмувати» створюється як рядок, і його вміст розбивається за допомогою функція strsep(). . Кожен із новостворених рядків потім створюється в окремому рядку в командний термінал . Рядок, на який вказує stringp вхідний параметр розбивається слово за словом, оскільки роздільником, який ми використовуємо у вхідному аргументі delim, є пробіл (' ') .

збереження gimp як jpeg

Ми заявляємо про 's_in' рядок разом із текстом «Починаємо програмувати» і покажчик 'in_Ptr' в функція main(). . The stringp функції strsep(). вхідним аргументом є цей покажчик.

Як роздільний вхідний аргумент для метод strsep(). і призначений роздільник, ми додатково оголошуємо 'рядок del' з символом простору. Далі ми оголошуємо покажчик 'o_Ptr' , який використовується як вихідний аргумент strsep(). . The метод printf(). використовуватиме цей покажчик як вхідний аргумент для відображення відновленого фрагмента на командній консолі.

цикл bash while

Після цього, після постачання рядка як перший аргумент, the 'in_Ptr' покажчик як другий параметр, і покажчик 'o_Ptr' як вихідний аргумент ми називаємо функція strsep(). . Цей виклик здійснюється всередині a цикл while з умовою екранування, що більше немає роздільників strsep() повертає нульовий покажчик.

Код для цього прикладу такий:

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

Strsep() розділяє 's_in' рядок слово за словом, щоразу створюючи новий рядок, який потім відображається в новому рядку командної консолі, як показано нижче;

Вихід:

 Let's start programming 

Висновок

У цій статті ми продемонстрували, як обробляти рядки за допомогою функція strsep(). , одна з функцій, зазначених у 'string.h' заголовок. Ми говорили про його теоретичне обґрунтування синтаксис, техніка виклику , і операція . Крім того, ми продемонстрували тип даних, який приймає кожен вхідний і вихідний аргумент.