Разделение строки в С++

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /home/ih139182/public_html/includes/menu.inc).

Функция strtok предназначена для разбиения на части заданной строки.

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

char * tmp = strtok(char *string, char *delimiters);
  • string - разбиваемая строка
  • delimiters - разделитель. Символ которые будет считаться началом/концом строки

Функция возвращает параметр типа char, который содержит первый "кусок" строки. Для получения дальнейших "кусков" необходимо вызвать функцию с первым параметром NULL

char *tmp = strtok(NULL, char *delimiters);

Выглядит это грозно, но на примере вам станет всё понятно.
Рассмотрим функцию, которая разделит заданную строку по пробелам.

#include <stdio.h>
#include <string.h>
#include <iostream>
int main () {
    char buff[] = "Строка для разделения по пробелам";
    char *tmp_char;
    tmp_char = strtok(buff," ");    // вызовем функцию strtok для разделения строки в buff по пробелам
    while (tmp_char != NULL) {    ///выводим части пока они существуют
         std::cout << tmp_char << "\n";   ///выведем часть на экран
         tmp_char = strtok(NULL, " ");    ///получим следующую часть
    }
    return 0;
}

Как видите всё не так сложно...

Просмотров:   2479