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

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

17.12.2014, 15:35. Показов 3244. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь.

8.Задан текст.Напечатать все слова,отличные от последнего слова,выполнить предварительное преобразование каждое из них по следующему правилу:удалить из каждого слова первую и последнюю буквы.

Добавлено через 1 час 8 минут
ребят,помогите..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2014, 15:35
Ответы с готовыми решениями:

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

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

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

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

6
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
17.12.2014, 15:35 2
Сначала нужно выполнить преобразование, а потом сравнивать последнее слово с остальными или сначала сравнить, а потом слова порезать?
А то из условия не понятно - "предварительно" это перед печатью или перед сравнением.
0
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 32
17.12.2014, 15:37  [ТС] 3
Сначала удалить буквы а потом,напечатать наверно.Сам плохо понял.Помогите это написать прошу,с программированием текста не дружу
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
17.12.2014, 15:41 4
Цитата Сообщение от joko07 Посмотреть сообщение
Сначала удалить буквы а потом,напечатать наверно.
Это да, а сравнивать когда?
0
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 32
17.12.2014, 15:45  [ТС] 5
Перед печатью,если не трудно и поможешь,напиши пожалуйста свой скайп
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.12.2014, 17:09 6
C++
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
30
31
32
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
int main()
{
    std::string str;
    std::cout << "Enter text: ";
    std::getline(std::cin, str);
 
    typedef std::vector<std::string> myvec;
    myvec words; // разбитые слова
    std::istringstream ist(str); // буфер
 
    std::cout << "Words without first and last chars:\n";
    // заполняем буфер, предварительно удаляя у слов первую и последнюю буквы
    for (std::string word; ist >> word; words.push_back(word))
    {
        word.erase(0, 1); // удаляем первую бкву
        if (!word.empty())
            word.erase(word.length() - 1, 1); // удаляем последнюю букву (pop_back)
        std::cout << word << " "; // выводим слово на экран
    }
 
    std::cout << "\nWords that diff from last word:\n";
    // выводим слова, не совпадающие с последним
    const std::string lastWord = *(words.rbegin()); // words.back()
    for (myvec::const_iterator cit = words.begin(); cit != words.end() - 1; ++cit)
        if (*cit != lastWord)
            std::cout << *cit << " ";
}
0
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 32
29.12.2014, 23:02  [ТС] 7
Нарисуйте, пожалуйста, блок-схему:


C++
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(){
 char txt[512];
  
 char delim[] = " ,.-:!?", word[100];
 int n_txt, n_delim = strlen(delim)-1;
 int s = 0, f = 0, i, j;
 
 printf("Enter text:\n", txt);
 gets(txt);
 n_txt = strlen(txt)-1;
 
 for(i = n_txt; i > 0; i--)
    {
       
   for(j = 0; j < n_delim; j++)   
     if( txt[i] == delim[j] )
    {
       if(f != 0)
         s = i+1;
       break;
     }
     
   if(j == n_delim){
     if( f == 0 )
       f = i;
   }
   else if (s != 0)
     break;
 }
 char *last_word = new char[f-s+1];
 memcpy(last_word, &txt[s], f-s+1);
 last_word[f-s+1] = '\0';
 printf("Last word: %s\nResault:\n", last_word);
 char * pch = strtok (txt, delim);
 while( pch != NULL )
    {
   if( strcmp(pch, last_word) != 0 )
     {strcpy(word, pch);
      word[strlen(word)-1] = '\0';
      if(word[0] != '\0')
        printf("%s ", word);
     }
   pch = strtok (NULL, delim);
 }
 system("pause");
 delete last_word;
 return 0;
}
0
29.12.2014, 23:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2014, 23:02
Помогаю со студенческими работами здесь

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

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

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

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


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

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

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