AnsiString S="Слово1 Слово1 Слово1 Слово1";
for (;S.Pos(" ")>0;S[S.Pos(" ")]='\n');
TStringList *SL=new TStringList();
SL->SetText(S.c_str());
// for (int i=0;i<SL->Count;i++)
// теперь в SL->Strings твои слова
delete SL;
разделение строки на несколько по символу пробел
нужно разделить её на такие же пять строк состоящие из одного слова
как это сделать оптимально
HELP
Цитата:
Originally posted by Pert
Есть строка, состояшая из предложения ну к примеру 5 слов
нужно разделить её на такие же пять строк состоящие из одного слова
как это сделать оптимально
HELP
Есть строка, состояшая из предложения ну к примеру 5 слов
нужно разделить её на такие же пять строк состоящие из одного слова
как это сделать оптимально
HELP
Оптимально Оптимально это что в твоём понимании. Ну можешь осуществлять проверку на пробел.
Забавный вопрос, дествительно что значит оптимально, любой сходу приходящий в голову алгоритм имеет лимнейную зависимость от длины строки... Вариант первый, просматривать строку если не пробел, записывать в текущую выходную, если пробел, генерить новую. Несколько сложновато в реализации... Можно сделать тривиальный поиск пробела и копирование в новую строку, всего до найденной позиции... не факт, что будет проще...Можешь порыться в help'е, есть какая-то функция, которая это делает при передаче командной строки программе...
Код:
незнаю на сколько оптимально но кода довольно мало:) и все за тебя делает TStringList
char *lexem; //задание указателя
lexem = strtok(bufer, " "); //вытаскивание из строки bufer лексеммы до пробела
while(lexem != NULL) { //начало цикла разбивки строки на последующие лексемы
lexem=strtok(NULL, " "); //вытаскивание очередной лексеммы до пробела
...} //завершение цикла