0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 21
1

Строка: Напечатать все слова, отличные от последнего слова

16.11.2015, 20:56. Показов 2001. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Строковый тип!
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела, за последним словом точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова все предыдущие вхождения последней буквы. За помощь спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2015, 20:56
Ответы с готовыми решениями:

Напечатать все слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
1) Программа. Дан текстиз строчных русских букв, закоторым следует точка. Напечатать этот текст...

Из последовательности слов напечатать все слова, отличные от последнего слова
Надо написать программу, а я в программирование не силен. Дана непустая последовательность слов,...

Напечатать все слова, отличные от последнего слова предварительно преобразовав каждое из них
Дан текст. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое...

Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них
не понимаю код программы const word_count = 100; type type_string_array = array of string;...

7
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
17.11.2015, 12:54 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var s,sl,ps:string;
function posl(st:string):string;
var i:integer;
    p:string;
 begin
  i:=length(st)-1;
  while s[i]<>' ' do
   begin
    p:=s[i]+p;
    dec(i)
   end;
  posl:=p
 end;
function msl(var x:string):string;
begin
 while pos(x[length(x)],x)<>length(x) do delete (x,pos(x[length(x)],x),1);
 msl:=x
end; 
begin
 readln(s);
 ps:=posl(s);
 while pos('  ',s)>0 do delete(s,pos('  ',s),1);
 while pos(' ',s)>0 do
  begin
   sl:=copy(s,1,pos(' ',s)-1);
   if sl<>ps then write(msl(sl),' ');
   delete(s,1,pos(' ',s));
  end;
end.
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 21
07.12.2015, 21:15  [ТС] 3
Спасибо)
0
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
22.03.2017, 17:05 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    some.pop_back();
    auto new_end = some.substr(some.find_last_of(' '), some.length());
    std::istringstream iss{ some };
    std::for_each(std::istream_iterator<std::string>(iss),
                  std::istream_iterator<std::string>(),
                  [new_end](std::string s)
    {
        if (s != new_end)
        {
            s.erase(s.back());
            std::copy(s.begin(), s.end(), std::ostream_iterator<char>(std::cout, ""));
            std::cout << std::endl;
        }
    });
0
Cyborg Drone
23.03.2017, 00:28
  #5

Не по теме:

zarko97, зачем Вы подняли из небытия древнюю тему, да ещё и ответили не на том языке программирования? Если Вы решили показать, как это компактно выглядит на C++, то зря занимались некрофилией: к примеру, на Pascal ABC.NET вся эта задачка пишется в одну-две строки.

Да, и ещё. Между Pascal- и C- подобными языками, на самом деле, нет какой-то принципиальной разницы, это становится понятным, если изучить синтаксис для того и другого в равной мере. Однако, замечу, что в контексте этой темы разница существенная: на данном форуме принято на паскале писать программы для "паскалевских" разделов форума, на C - для "сишных".

0
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
23.03.2017, 13:57 6
Cyborg Drone, уж в две строчки точно не выйдет
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32592 / 21061 / 8134
Регистрация: 22.10.2011
Сообщений: 36,332
Записей в блоге: 8
23.03.2017, 17:47 7
Лучший ответ Сообщение было отмечено Cyborg Drone как решение

Решение

Цитата Сообщение от zarko97 Посмотреть сообщение
в две строчки точно не выйдет
А зачем тут больше?
Pascal
1
2
3
4
begin
  var words := ReadlnString().ToWords(' .'.ToArray);
  words.Where(t -> t <> words.Last).Select(s -> s.ToArray.Where((ch, i) -> (ch <> s.ToArray.Last) or (i = Pred(s.Length))).JoinIntoString('')).Println(' ');
end.
Формально - это 2 строки кода, begin/end не считаются
3
Cyborg Drone
23.03.2017, 19:19     Строка: Напечатать все слова, отличные от последнего слова
  #8

Не по теме:

zarko97, :-/

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2017, 19:19

Напечатать все слова, отличные от последнего слова, предварительно преобразовав их по заданному правилу
Добрый день помогите пожалуйста ! Само условие я сделал . Не могу понять как задать от 2 до 30...

Напечатать все слова, отличные от последнего слова
№ 19 п.2. - Напечатать все слова, отличные от последнего слова. Если слово четной длины, заменить...

Исправить 3адачу: дана строка длиной n символов, Вывести все слова, отличные от последнего слова, предварительно удалив из слов нечетной длины его сре
дана строка, между словами не менее одного пробела, в конце точка. Вывести все слова, отличные от...

Напечатать все слова отличные от последнего
Дана строка содержащая от 2 до 10 слов, в каждом из которых от 2 до 10 латинских букв; между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru