Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 22:00   #1
Nicole
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 11
Восклицание Буква в i-ом слове строки.

Прошу помочь новичку-самоучке.
Задача звучит так: дана строка символов. определить, содержит ли k-ое слово строки заданную букву.
нужен только алгоритм определения, а там я уже его сама встрою куда надо... Никак дойти до меня не может, как сделать так, чтобы прога сохраняла длины всех слов и потом без проблем находила нужное...
Nicole вне форума Ответить с цитированием
Старый 13.04.2011, 22:09   #2
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Как насчет динамического массива?
eduard93 вне форума Ответить с цитированием
Старый 13.04.2011, 22:16   #3
Nicole
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 11
Восклицание

В смысле, к примеру, взять стринггрид, туда поместить эти самые символы и сверять? Ну да, так я смогу найти порядковый номер каждого слова... А вот как в стринггриде проверять наличие заданной буквы? Постоянно присваивать значение элемента массива эдиту?
Nicole вне форума Ответить с цитированием
Старый 13.04.2011, 22:22   #4
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Код:
var 
  ST: string;
  Count, p: integer;

begin
  p:=pos(' ', ST);
  Count:=0;
  while p <> 0 do
    begin
      str:=copy(ST, 1, p);
      Delete(str, 1, p);
      if not ((Length(str) = 1) and (str[1] = ' ')) then Inc(Count);
      if Count = 6 then break;
      p:=pos(' ', ST);
    end;
  if (Count = 5) and (Length(ST) <> 0) then str:=st;
  
  // теперь в строке str находится 6-е слово
end;
вроде так, при условии что строка содержит 6 или более слов и слова разделены пробелами. Хотя код не проверял.
Вообще алгоритм простой: разбиваете строку на слова с целью выбрать из нее k-е слова. Ну а потом в этом слове ищите заданную букву. В приведенном коде k = 6.
ICQ: 593-013-807

Последний раз редактировалось Don Karleone; 13.04.2011 в 22:25.
Don Karleone вне форума Ответить с цитированием
Старый 13.04.2011, 22:24   #5
Nicole
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 11
Радость

О! Спасибо огромное! Ничего, если что, сама подправлю. Главное, что основа для размышлений есть.
Nicole вне форума Ответить с цитированием
Старый 14.04.2011, 08:12   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Если на делфи надо то проще пользоваться TStringList
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Буква С Mr.Been Паскаль, Turbo Pascal, PascalABC.NET 3 06.05.2009 19:05
первая буква в слове Cdevelop Общие вопросы C/C++ 2 17.03.2009 13:44
Буква - не буква? nec117 Общие вопросы C/C++ 4 06.11.2008 17:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45