String Split в языке программирования C
Разделение строки на подстроки является одной из часто используемых операций при работе с текстовыми данными. В языке программирования C, для разделения строки на подстроки, вы можете использовать функцию strtok() или написать свою собственную функцию, которая делает это.
Функция strtok() - это стандартная функция в языке C, которая разбивает строку на подстроки, используя указанный в качестве разделителя символ или строку разделителей. Она возвращает указатель на текущую подстроку и запоминает состояние, чтобы можно было продолжить разделение в следующий раз. Вот пример использования strtok():
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Пример разделения строки на подстроки";
char* token = strtok(str, " "); // разделитель - пробел
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, " ");
}
return 0;
}
В этом примере мы имеем строку "Пример разделения строки на подстроки", и мы используем пробел в качестве разделителя. Функция strtok() разделяет строку на подстроки и выводит их на экран. Выполнение функции strtok() продолжается, пока она не вернет NULL, что означает, что все подстроки были обработаны.
Кроме использования функции strtok(), вы можете также написать свою собственную функцию, которая будет разделять строку на подстроки. Вот пример такой функции:
#include <stdio.h>
#include <string.h>
void splitString(char* str, const char* delimiter) {
char* token = strtok(str, delimiter);
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, delimiter);
}
}
int main() {
char str[] = "Пример разделения строки на подстроки";
splitString(str, " ");
return 0;
}
Эта функция splitString() принимает строку и разделитель в качестве аргументов. Она использует strtok() для разделения строки на подстроки и выводит их на экран.
Вот несколько дополнительных примеров кода, в которых используется разделение строки на подстроки в других контекстах:
- Разделение даты (например, "12-06-2022") на день, месяц и год:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "12-06-2022";
char* token = strtok(str, "-");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, "-");
}
return 0;
}
- Разделение URL-адреса (например, "https://www.example.com/") на протокол, доменное имя и путь:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "https://www.example.com/";
char* token = strtok(str, ":/");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ":/");
}
return 0;
}
В обоих примерах мы использовали strtok() для разделения строки на подстроки с использованием различных символов в качестве разделителей.
В заключение, разделение строки на подстроки в языке программирования C может быть достигнуто с помощью функции strtok() или написания собственной функции, которая выполняет эту задачу. Это основной инструмент для обработки текстовых данных в C, и вы можете настраивать его в соответствии с вашими конкретными потребностями, указывая различные разделители.