String Split в C# – примеры использования
String split в языке программирования C используется для разделения строки на подстроки по определенному разделителю. Функция split принимает два аргумента: строку, которую нужно разбить, и символ-разделитель.
Синтаксис функции split выглядит следующим образом:
c
char **split(char *str, const char *delim);
Она возвращает массив указателей на char, который содержит подстроки, полученные из строки str. delim - это символ-разделитель, который нужно использовать для разбивки строки.
Вот пример кода, где строка "Hello, World!" разделяется по запятой:
c
#include
#include
#include
char **split(char *str, const char *delim) {
char **result = 0;
size_t count = 0;
char *tmp = str;
char *last = 0;
char delim_cpy[2];
delim_cpy[0] = *delim;
delim_cpy[1] = '\0';
// Подсчитываем количество подстрок
while (*tmp) {
if (*delim == *tmp) {
count++;
last = tmp;
}
tmp++;
}
// Добавляем последнюю подстроку, если она есть
if (last < (str + strlen(str) - 1)) {
count++;
}
// Создаем массив указателей
result = malloc(sizeof(char *) * (count + 1));
if (result) {
size_t idx = 0;
char *token = strtok(str, delim_cpy);
while (token) {
*(result + idx++) = strdup(token);
token = strtok(0, delim_cpy);
}
*(result + idx) = 0;
}
return result;
}
int main() {
char str[] = "Hello, World!";
char **res = split(str, ",");
int i = 0;
while (*(res + i)) {
printf("%s\n", *(res + i));
free(*(res + i));
i++;
}
free(res);
return 0;
}
Результат работы программы:
Hello
World!