Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 26.07.2018
Сообщений: 11
1

Аналог Split() из JS/C#, или как разбить строку по подстроке в c++ builder

26.11.2019, 21:38. Показов 2728. Ответов 4

Author24 — интернет-сервис помощи студентам
Мне нужно разбить строку AnsiString на массив, разделителем должен служить не символ, а другая строка(подстрока) из нескольких символов, к примеру "---", функция должна возвращать массив строк AnsiString.

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

Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2019, 21:38
Ответы с готовыми решениями:

Разбить методом Split каждую строку файла по пробелу или табуляции
Как к каждой строчке в текстовом файле, применить следующий метод: string.Split(new char { ' ',...

Как разбить строку через Split по переносам на новую строку?
У меня есть строка (string file), которая выглядит так, как на фото. Как её разбить по переносам на...

Как разбить строку с помощью Split?
Здравствуйте, есть такой массив в тхт файле 4248 4 1 2 3 14 6624 4 1 2 3 17 5193 7 1 2 8 11 14...

Разбить строку на подстроки, в каждой подстроке сохранить предыдущие
Есть строка вида "aaaa.bbbb.cccc.dddd", нужно преобразовать ёе в список строк ".dddd", "cccc.dddd",...

4
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 255
26.11.2019, 22:54 2
int Pos(const AnsiString& subStr) const
Возвращает индекс первого символа первого вхождения
subStr в S1. Индексы начинаются с 1.
делать в цикле, и удалять прочитанный кусок
0
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,059
Записей в блоге: 2
27.11.2019, 05:54 3
samsebe, Еще проще
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   AnsiString str = "one---two---three";
 
    str = ReplaceStr(str, "---", "\r\n");
 
     Memo1->Lines->Add(str);
}
0
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 255
27.11.2019, 14:56 4
ReplaceStr() Какой файл подключать?
0
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,793
Записей в блоге: 3
27.11.2019, 16:19 5
Лучший ответ Сообщение было отмечено TrollHammer как решение

Решение

C++
1
#include <StrUtils.hpp>
Добавлено через 5 минут
Или, если не хотите доп. модуль подключать, можете воспользоваться другой функцией:
C++
1
StringReplace(Str, "---", "\r\n", TReplaceFlags() << rfReplaceAll);
Добавлено через 7 минут
А если у Вас что-то посвежее, чем Билдер 6, то с помощью функций этого самого StrUtils можно строку сразу в динамический строковый массив затолкать:
C++
1
TStringDynArray A = SplitString(ReplaceStr(Str, "---", "\t"), "\t");
1
27.11.2019, 16:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2019, 16:19
Помогаю со студенческими работами здесь

Split. Разбить строку =3+4-5*(4+9)
Как можно разбить строку =3+4-5*(4+9) в string?

Разбить строку s на подстроки так, чтобы в каждой подстроке находились целые слова и длина не превышала N
Даны строки s, натуральное n &lt;= 20. Разбить строку s на последовательность подстрок так, чтобы в...

Разбить строку методом Split
Добрый вечер. Имеется файл (0 ; 0) ( 2,5; 0) ( 0;1) ( ...

Разбить строку через Split
Доброго времени суток!Пытаюсь разбить строку через Split,а конкретнее выделить коэффициенты а b c...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru