|
Pers.narod.ru. Обучение. Примеры по C++ Builder. Разбиение текста на слова в C++ Builder - ничего парсить не нужно |
...методами wcstok, поиском пробелов и табуляций, сортировками списков слов или, тем паче, Сишными функциями вроде strtok (хотя хорошая была функция). Всё гораздо проще:
TStringList *List = new TStringList; // создаем список List->DelimitedText = Memo1->Text; // загружаем в него текст из мемо-поля // (происходит автоматическое разбиение на слова)
Потом пишем нужный обработчик с параметром-списком, например, можно искать самое длинное слово:
int WordLength(TStringList *List) {
int out = -1, lth = 0;
for (int i=0; i<List->Count; i++)
if ( List->Strings[i].Length() > lth ) {
lth = List->Strings[i].Length();
out = i;
}
return out;
}
В итоге получаем функцию-обработчик вида
void __fastcall TForm1::GoClick(TObject *Sender) {
if (Memo1->Lines->Count>0) {
TStringList *List = new TStringList;
List->DelimitedText = Memo1->Text;
int index=WordLength(List);
// вызываем нашу функцию для получения самого длинного слова
if (index>-1) ShowMessage (List->Strings[index]);
//и выводим его
else ShowMessage ("Не найдено");
}
else ShowMessage ("Список пуст");
}
Скачать пример - проект C++ Builder 6 (4 Кб)
|
|