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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить какой элемент в массиве, расположен раньше : наибольший или наименьший http://www.cyberforum.ru/cpp-beginners/thread1072854.html
Народ нужна помощь с C++ кто может помочь помогите. Условия: Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
C++ шаблоны функций Помогите пожалуйста с задачей: Разработайте программу, в которой реализовано нахождение количества пар одинаковых по значению соседних элементов одномерного массива. используя шаблоны функций http://www.cyberforum.ru/cpp-beginners/thread1072845.html
Проверить, совпадают ли матрицы C++
"Даны две квадратные матрицы размером n×n. Проверить, совпадают ли они." Вот мой говнокод, который не работает и постоянно выдает мне "матрицы совпадают", в чем ошибка товарищи? #include...
Вычислить сумму элементов массива, расположенных после минимального элемента C++
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить сумму элементов массива, расположенных после минимального элемента. ...
C++ Заменить каждую последовательность, содержащую более одного пробела, на один пробел http://www.cyberforum.ru/cpp-beginners/thread1072770.html
В заданной строке заменить каждую последовательность, содержащую более одного пробела, на один пробел. Например: "a bcd ef . gh 90" - "a bcd ef . gh 90" Всё что я на данный момент...
C++ Написать функцию для парсинга всех 3 строк Есть строка вида: " text text1 , text2 " Перед и после строки text или text1 и text2 может сколько угодно пробелов и символов табуляции. Но символ " , " может быть слит со строкой text1. Ну... подробнее

Показать сообщение отдельно
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417

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

16.01.2014, 11:03. Просмотров 308. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru