вступ:
рядки є важливою складовою програмування , тому що вони дають можливість спілкуватися з користувачів, показувати результати та читати файли . Вони є типом механізму введення та виведення даних. Оскільки рядки постійно використовуються в певній якості в програмах, які ми створюємо, ефективне поводження з рядками та функціями, які їх обробляють, є вирішальними.
Цей підручник навчить вас розділяти тексти залежно від роздільників за допомогою метод 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' заголовок. Ми говорили про його теоретичне обґрунтування синтаксис, техніка виклику , і операція . Крім того, ми продемонстрували тип даних, який приймає кожен вхідний і вихідний аргумент.