Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Не работает функция, которая делит строку по разделителю - C++

16.01.2014, 11:03. Просмотров 300. Ответов 0
Метки нет (Все метки)

Функция разделяет строку string str на части, каждая часть ограничена разделителем string razdelitel, результат записывается в массив result_mass[200]

1) она не работает если разделитель не писать текстом "1234", а передавать через переменную
то есть если массив razdelitel_ch заменить на "1234" (то есть записать текстом), то все работает, а мой пример нет

2) даже если писать разделитель текстом, то функция работает с ошибкой, она разделяет строку даже когда встретит какой то один символ из тех что входят в разделитель, а нужно делить только когда встречаются все символы которые входят в разделитель.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void explode2(string str, string razdelitel, string result_mass[200]){
    int i=0;
    for (i=0; i<sizeof(result_mass); i++){result_mass[i]="";}
 
    char buff[65535];
    char razdelitel_ch[5];
 
    strcpy(buff,str.c_str());  //присвоение string в char
    strcpy(razdelitel_ch,razdelitel.c_str());  //присвоение string в char
 
    
    int q = -1;
    char * p = strtok(buff,razdelitel_ch);    //разбитие на лексемы
    while (p!=0){                    //проверка
        ++q;
        result_mass[q] = p;        //присвоение в массив новой лексемы до разделителя
        p = strtok(NULL,razdelitel_ch);       //переход к следующей
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает функция, которая делит строку по разделителю (C++):

Как работает функция, которая переворачивает строку? - C++
Объясните , как работает эта функция ,то что она переворачивает строку , это я понял , но вот как она это делает ? Особенно не понятен...

Функция, которая копирует строку в другую строку заданное количество раз - C++
Помогите!!!! срочно нужна задача. Не знаю как сделать. Разработать функцию, которая копирует строку в другую строку заданное количество...

Разбить строку по заданному разделителю - C++
Код ниже может разбить строку по разделителю, который заранее указан в char const. Можно ли сделать как - то так, чтобы разделитель выбирал...

Не могу разбить строку по разделителю - C++
Суть такая: Делаю задачу копирования информации в папку на всех устройствах. Есть строка пути в виде: Откуда|Куда;Откуда|Куда;... и.т.д....

Как проще всего разбить строку на ряд строк по разделителю? - C++
Пусть например есть строка &quot;abc;dasfadfa;asfadsfv&quot;. Надо разбить ее соответственно на 3 строки по разделителю &quot;;&quot;. Как это проще всего...

Функция, которая переворачивает строку - C++
Требуется написать функцию bool ReverseString (string &amp; sString) на С++, которая переворачивает строку sString (первая буква становится...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 11:03
Привет! Вот еще темы с ответами:

Почему strtok неправильно делит строку - C++
Он должен делить по словах(&quot;делитель&quot; - пробел) а он делит по-символьно. #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; ...

Функция, которая ищет в строке T строку H - C++
Добрый день, уважаемые форумовчане! Есть следующее задание. Написать функцию Index, которая ищет в строке T на протяжении L букв,...

Функция, которая преобразует строку шестнадцатеричных цифр - C++
Ребят просьба помочь хоть с какой нибудь задачей. Задача 1. Написать и протестировать функцию , которая преобразует строку...

Функция, которая приводит строку к верхнему регистру - C++
Написать функцию, которая приводит строку к верхнему регистру. Проиллюстрировать работу функции примером


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru