(C++) Разделить строку на несколько слов

60
16 января 2022, 22:40

Как возможно реализовать разделение строки без использования стандартных библиотек C++?

Вот пример: Строка: test1:test2:test3

Разделяем

Строка1: test1

Строка2: test2

Строка3: test3

Answer 1

Ну если нельзя stl то пишите на C

Для разделения строки есть strtok отдайте ему строку и сепоратор)))

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct
{
    char* _str;
    int _size;
} c_string;

c_string GetCharBuf(int size)
{
    char* tmp = (char*)malloc(sizeof(char) * (long unsigned int)size);
    if (tmp)
    {
        memset(tmp, size, ' ');
    }
    c_string c_str;
    c_str._str = tmp;
    c_str._size = size;
    return c_str;
}

int main()
{
    int buff_size = 1024;
    c_string c_str = GetCharBuf(buff_size);
    if (!c_str._str)
    {
        return -1;
    }
    printf("Enter a string : ");
    fgets(c_str._str, c_str._size, stdin);
    c_string* str_arr = NULL;
    int arr_size = 0;
    int i = 0;
    char* sprt = ",. ;:\t\n";
    char* tmp_word = strtok(c_str._str, sprt);
    while (tmp_word != NULL)
    {
        ++arr_size;
        str_arr = (c_string*)realloc(str_arr, sizeof(c_string) * (long unsigned int)arr_size);
        str_arr[i]._str = tmp_word;
        str_arr[i]._size = (int)strlen(tmp_word);
        ++i;
        tmp_word = strtok(NULL, sprt);
    }
    for (int i = 0; i < arr_size; ++i)
    {
        printf("str : {%s}, size : {%d}\n", str_arr[i]._str, str_arr[i]._size);
    }
    if (str_arr)
    {
        free(str_arr);
    }
    free(c_str._str);
    return 0;
}
READ ALSO
с++: прекратить выполнение всех потоков

с++: прекратить выполнение всех потоков

Формирую задачу, которая будет выполняться в нескольких потоках с помощью stl следующим образом:

77
Проблема обработки строк в с++

Проблема обработки строк в с++

Есть задание на написание программы, которая обрабатывает текстовый файл со строками такого вида:

81
Несколько auto в объявлении функции

Несколько auto в объявлении функции

Можно объявить функцию так, чтобы узнать возвращаемый тип по типу возвращаемого выражения:

130
Запуск MPI программы без mpiexec/mpirun

Запуск MPI программы без mpiexec/mpirun

Какое поведение следует ожидать при запуске MPI программы без mpiexec/mpirun, но скомпилированной с помощью MPI компилятора? Специфицировано ли оно...

45