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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2015, 22:54   #1
Аелд
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 33
По умолчанию Из строки слов, разделенных пробелами, удалить слова, число символов у которых нечетно.

Ребятки,помогите разобраться.
Не знаю как записать условие.
я понял,что последний символ в таких словах имеет нечетный номер и получил такое условие:
Код:
if (i mod 2<>0) and (s[i]<>' ')
.Это верно?
Аелд вне форума Ответить с цитированием
Старый 10.05.2015, 22:58   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Если слова разделяются не одним, и несколькими пробелами, причём, каждый раз кол-во - разное, то может быть всё что угодно.
Пример:
Код:
лл   ттт
(здесь три пробела, последняя буква т - восьмой по счёту символ)

Я советую выделять и анализировать каждое слово в пердложении
Код:
// Выделяем по одному слову в предложении и аналилизируем
    i:=1;
    w:='';
    while i <= length(s) do
      begin // пропускаем пробелы
        if s[i] = ' ' then
          begin
            inc(i);
            continue;
          end;

        j:=i;
      // выделение (получение слова) происходит именно здесь
        while (s[j] <> ' ') AND (j <= length(s)) do
          begin
            w:=w + s[j];
            inc(j)
          end;


        // W - слово. Его можно обрабатывать, сравнивать....

          // переходим к следующему пробелу в строке (к пробелу после текущего слова)
            inc(i, length(w));

          // обнуление служебных параметров
            w:='';

      end;
Впрочем, этот вариант - более универсальный, в вашем же случае надо находить позицию первой буквы этого слова и его длинну.

Последний раз редактировалось Вадим Мошев; 10.05.2015 в 23:03.
Вадим Мошев вне форума Ответить с цитированием
Старый 10.05.2015, 23:10   #3
Аелд
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Если слова разделяются не одним, и несколькими пробелами, причём, каждый раз кол-во - разное, то может быть всё что угодно.
Пример:
Код:
лл   ттт
(здесь три пробела, последняя буква т - восьмой по счёту символ)
ну это я знаю как проверить
Аелд вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Борьба со строками: Дана строка, состоящая из слов, разделенных пробелами и заканчивающаяся точкой. Удалить в каждом слове... (C) dykee Помощь студентам 1 18.03.2014 05:07
Дана последовательность символов, состоящая из слов. Вывести на экран слова, в которых все символы повторяющиеся (строки на C) Роман64 Помощь студентам 0 22.12.2013 15:00
. Задана строка символов. состоящая из отдельных слов, разделенных пробелами. Преобразовать ее, оставив в ней только первые два Proskurina Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2012 19:35
. Задана строка символов. состоящая из отдельных слов, разделенных пробелами. Преобразовать ее, оставив в ней только первые два Proskurina Помощь студентам 1 29.05.2012 19:34
Дана последовательность слов разделенных пробелами, удалить из нее повторные вхождения слов.С++ Bullrock Помощь студентам 4 01.03.2012 13:16