11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
1 | ||||||
Как разделить строку(аналог функции explode)13.01.2014, 21:16. Показов 6715. Ответов 12
Метки нет (Все метки)
Есть строка string в которую записаны данные разделенные специальным разделителем например |
Как разделить такую строку и записать полученные данные без разделителя в массив ? нужна функция на с++ аналог explode на php http://www.php.su/explode Начал писать
0
|
13.01.2014, 21:16 | |
Ответы с готовыми решениями:
12
Есть ли в С аналог функции explode(или split)? Аналог explode или как еще распарсить строку Аналог php'шной функции explode()? Как разделить строку на подстроки, без использования функции Split |
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
||||||
13.01.2014, 21:37 | 2 | |||||
1
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
13.01.2014, 21:46 [ТС] | 3 |
Bend3r, А при чем тут char ? у меня же string
Как тогда преобразовать переменную string в char ?
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
13.01.2014, 21:49 | 4 |
0
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
13.01.2014, 21:53 [ТС] | 5 |
Bend3r,
Еще раз, изначально у меня переменная std::string у нее уже есть значение, откуда я возmму массив char в котором записаны все символы из string???
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
||||||
13.01.2014, 22:17 | 6 | |||||
Можно конечно и без strtok, а с помощью find и copy, но можно и так т.к это проверенный способ.
1
|
13.01.2014, 22:34 | 7 | ||||||||||
Если имеется boost, то очень просто:
А иначе надо повозится. Добавлено через 6 минут Еще такое надумал:
0
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
13.01.2014, 22:40 [ТС] | 8 |
Bend3r,
Работает только если разделитель из одного символа, а у меня он минимум из 4 символов попробовал вставить свой разделитель в strtok(); но функция не принимает строку string DiffEreD, Спасибо, но пока хочется без boost, как то по простому чтобы
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
||||||
13.01.2014, 22:50 | 9 | |||||
1
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
13.01.2014, 23:07 [ТС] | 10 |
Bend3r,
Моя ошибка, не заметил у тебя там два раза нужно вводить разделитель. Все работает!
0
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|||||||||||
16.01.2014, 00:01 [ТС] | 11 | ||||||||||
Bend3r,
С функцией проблема она не работает если разделитель не писать текстом "1234", а передавать через переменную
Подскажи плз что не так и как исправить ? Написал свою функцию все работает,
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
||||||
16.01.2014, 17:59 | 12 | |||||
Вы как всегда не внимательны. Вот я вам переделал чтоб разделитель был в виде переменной.
По поводу того как решить проблему, если встречается первый символ разделителя и он разделяет, я пока думаю, но возможно этот способ и не подойдет. А так лучше разберитесь с регулярными выражениями.
1
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
17.01.2014, 13:46 [ТС] | 13 | |||||
Bend3r,
Сейчас проверил, передача разделителя в функцию через переменную работает, а если встречается символ разделителя опять то же самое. Моя функция работает как надо, но это почему то очень медленный способ не знаю как его оптимизировать. С регулярными выражениями я еще больше буду разбираться лучше как то отладить одну из двух функций. Добавлено через 17 часов 37 минут В общем разобрался сам использовать преобразование char в string было ошибкой нужно использовать функции самого string
1
|
17.01.2014, 13:46 | |
17.01.2014, 13:46 | |
Помогаю со студенческими работами здесь
13
explode разделяет строку не так как надо, по символу "\n" конца строки Перевести строку в число (аналог функции StrToInt) Работа функции explode P-CAD - сборка элемента после функции Explode. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |