Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sloot
0 / 0 / 0
Регистрация: 04.07.2016
Сообщений: 5
#1

Напечатать слова последовательности, которые отличны от последнего слова - C++

05.07.2016, 11:03. Просмотров 137. Ответов 0
Метки нет (Все метки)

Здравствуйте! Мне нужна помощь с заданием. Я не могу вывести на экран слово отличное от последнего, а так же при максимальной последовательности учитывается точка. А так же иногда не учитывается первое слово. Если вводить его без повторений, то оно не отображается.

Тема: Строки

Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними словами — не менее одного пробела, за последним словом — точка. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству:
1) длина слова максимальна;
2) в слове нет повторяющихся букв.
Мой код:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
#define _CRT_SECURE_NO_WARNINGS
 
using namespace std;
enum check { NO, YES };
 
 
void strComparsion(const char *str1, const char *str2, const int beginStr2, const int endStr2);
void f(char str[]);
 
int main()
{
    setlocale(LC_ALL, "rus");
    char arrWord[255];
    int counterSpace = 0; //Счетчик пробелов
    char strOneBuffer[9]; //Массив для первого слова
 
    cout << "Последовательность: ";
    gets_s(arrWord);
    cout << "Слова без повторения: ";
 
    //Копируем первое слов  в отдельный массив
    for (int i = 0; arrWord[i - 2] != ' '; i++)
    {
        strOneBuffer[i] = arrWord[i];
        if (arrWord[i] == ' ')
        {
            strOneBuffer[i] = '\0';
            counterSpace = i;
        }
    }
 
    for (int i = counterSpace + 1, j = counterSpace + 1; arrWord[i] != '\0'; i++)
    if (arrWord[i] == ' ' || arrWord[i] == '.')
    {
        strComparsion(strOneBuffer, arrWord, j, i);
        j = i + 1;
    }
    f(arrWord);
    cout << endl;
    system("pause");
}
void strComparsion(const char *str1, const char *str2, const int beginStr2, const int endStr2)
{
    //Флаги
    int countSymbol = 0;
    int repeatSymbol = 0;
 
    //Сравниваем слова с первым словом
    if (strlen(str1) == endStr2 - beginStr2)
    for (int i = 0, j = beginStr2; j < endStr2; i++, j++)
    if (str2[j] == str1[i])
        countSymbol++;
 
    //Ищем повторяющийся буквы в слове
    for (int i = beginStr2; i < endStr2; i++)
    for (int j = beginStr2; j < endStr2; j++)
    {
        if (i == j)
            continue;
        if (str2[i] == str2[j])
            repeatSymbol++;
    }
 
    //Выводим слово по требуеиым критериям
    if (countSymbol < strlen(str1) && repeatSymbol == 0)
    for (int i = beginStr2; i < endStr2; i++)
    {
        cout << str2[i];
        if (i == endStr2 - 1)
            cout << " ";
    }
}
 
void f(char str[])
{
    char smax[100];
    int max = 0, a;
    char s[100];
    for (int i = 0; i < strlen(str); i++)
    {
        a = 0;
        strcpy(s, "");
        for (int j = i, k = 0; str[j] != ' ' && str[j] != '\0'; j++, k++)
        {
            a++;
            s[k] = str[j];
        }
        s[a] = '\0';
        if (a > max)
        {
            max = a;
            strcpy(smax, s);
        }
    }
    cout << "\nСамое длинное слово: " << smax << endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2016, 11:03     Напечатать слова последовательности, которые отличны от последнего слова
Посмотрите здесь:

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

Напечатать те слова данной строки, которые отличны от последнего слова, и в слове нет повторяющихся букв - C++
Доброго времени суток! Помогите пожалуйста решить задачу. Дана строка s, содержащая от 2 до 25 слов, в каждом из которых от 1 до 8 ...

Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству - C++
Дана последовательность слов. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству:...

Напечатать слова последовательности, которые отличны от первого и без повторяющихся букв - C++
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не...

Вывести слова данного предложения, которые отличны от последнего слова - C++
Разработать алгоритм и составить программу на языке Си. Предполагается, что длина вводимого текста ограничена константой. Длины слов...

Вывести все слова текста, которые отличны от последнего слова, предварительно преобразовав их - C++
Решить задачу на обработку текста, используя функции работы со строками. Предполагается, что исходным является текстовый файл. В текст...

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

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

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

С++ Задан текст напечатать слова отличные от последнего слова Visual Studio - C++
Здравствуйте, вопрос такой, я написал программу через функции Её условие заключается в том, что задан текст напечатать все слова...

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

Напечатать все слова, отличающиеся от последнего слова, в которых буквы упорядочены по алфавиту - C++
Помогите пожалуйста с программой на С++, сама уже не справляюсь. Само задание: Слова текста из малых латинских букв записаны не...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru