Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Как можно расщеплять AnsiString предложение на составляющи
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Как можно расщеплять AnsiString предложение на составляющи - 30.11.2003, 10:18

Как можно эффективно разделить объект AnsiString (в частности предложение) на отдельные его составляющие (слова) используя какого либо разделителя. В частности символа пропуска?
Или с друг словами: Есть ли аналогичные классы в C++ Builder соответсвующие к классам JAVA StringTokenizer и методы похожие nextToken()?
Ответить с цитированием
  (#2 (permalink)) Старый
Lusims Lusims вне форума
Member
 
Сообщений: 33
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.11.2003
По умолчанию 30.11.2003, 15:03

Почитай про SubString....
Там по-моему так SubString(строка, начало, конец) - но лучше проверь...
Пишешь
Код:
AnsiString Str;
int nachalo=Str.Pos(" ");
Далее SubString вернет кусок строки (от "начало" до "конец")
Ответить с цитированием
  (#3 (permalink)) Старый
pagan pagan вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.12.2003
По умолчанию 02.12.2003, 10:18

Найди в инете библиотеку Rx. В ней есть модуль StrUtils.hpp - очень полезная штука для работы со строками. Можешь воспользоваться функцией ExtractWord ... (А вообще с Сях много стандартных методов. Удачи !!)
Ответить с цитированием
  (#4 (permalink)) Старый
Lusims Lusims вне форума
Member
 
Сообщений: 33
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.11.2003
По умолчанию 04.12.2003, 21:43

Если всё еще надо то вот алгоритм действий
Код:
AnsiString Predloshenie; //исходное предложение
         int pos=Predloshenie.Pos(" ");//находим позицию 1-го пробела
         AnsiString FirstWord=Predloshenie.SubString(1,pos);//выделяем строку от начала до первого пробела - первое слово
Итд нужное кол-во раз.....В принципе можно и в цикле (бесконечном , выход делать по нулевому символу....) Можно для этих целей либо сделать большой массив АнсиСтрок....либо использовать динамическое выделение памяти, что желательно (просто довыделяй каждый раз по строчке)....
Ответить с цитированием
  (#5 (permalink)) Старый
edk edk вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.06.2004
По умолчанию 25.06.2004, 16:09

S f-jei AnsiString.IsDelimiter() mozhesh proveritj javliajetsa li i-taja bukva AnsiStringa razdeliteljnym simvolom

Код:
for (int i=0;i<=Stringy.Length()-1;i++)
     {if (Stringy.IsDelimiter(" ",i))
       {Razdelitelj=i;break;}
     }
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
XKiller XKiller вне форума
Member
 
Сообщений: 197
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.07.2002
По умолчанию 01.07.2004, 00:06

А может так:
Код:
AnsiString asString = "Мое первое предложение";
AnsiString asToken = strtok(asString.c_str()," ");
asToken = strtok(NULL," ");
...
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгодное предложение. Тем кто знает С++ Xulio Задания за деньги 3 10.10.2011 15:46
AnsiString в String, String в AnsiString компилятор выдает ошибку Sputni_ck C++ Builder 4 29.07.2011 09:18
Хорошее предложение! Vex Продам 0 12.07.2010 02:14
Можно ли элементы одного столбца типа AnsiString в таблице StringGrid сделать ссылкам Lisen&#39;ok C++ Builder 3 14.04.2008 05:25
Предложение о работе redcube Работа 0 09.10.2007 15:25
Есть предложение Rodracer Общетематический 20 14.04.2007 18:38
Интересное предложение! imported_Marusja Работа 3 05.06.2006 12:12
Предложение на объединение программистов Lexi Вопросы начинающих программистов 9 20.03.2005 12:16
Предложение от Sayma,Ltd. Anonymous Работа 0 11.05.2004 20:09
Есть предложение!Ё SH@DOW Офтопик 25 06.03.2003 20:17
коммерческое предложение Anonymous Работа 0 06.02.2003 14:22



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов