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

Сравнение первого и последнего слова в тексте

27.10.2018, 22:28. Показов 1580. Ответов 5
Метки нет (Все метки)

Всем привет! Задача: Написать функцию для определения одинаковы или нет второе и последнее слово в этой строке. Сделал вывод второго и последнего слова, как теперь их сравнить на схожесть и вывести соответствующий ответ? Можно пользоваться стандартными функциями обработки строк.

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
#include <iostream.h>
#include <conio.h>
#include <string.h>
using namespace std;
 
int main() {
        const int N = 50;
        char str[N];
        char str1[N];
        char str2[N];
        int i, j, k, k2, s;
        cout << "Vvedite stroky: "; cin.get(str,N);
        cout << "Dlina etoy stroki: " << strlen(str) << " simvolov. ";
 
        //1(часть)--------------------------------------------------------------
 
 
        for (i = 0; i < strlen(str); i++) {
                if (str[i] == ' ') {
                    k=i;
                    i++;
                    break;
                }
        }
        cout << endl << "Ichem vtoroi probel v texte";
        for (i = i; i < strlen(str); i++) {
            if(str[i] == ' ') {
                k2=i;
                break;
            }
        }
 
        cout << "\n nomerpervogo probela - k1 = " << k;
        cout << "\n nomer probela posle 2-ogo slova - k2 = " << k2;
 
        for (i = k; i < k2; i++) {
            cout << str[i];
        }
 
        cout << endl << "Vivod slova v novom massive(str1[i]) ->";
 
        for (i = k; i < k2; i++) {
                str1[i] = str[i];
                cout << str1[i];
        }
 
        //2(часть)--------------------------------------------------------------
 
        for (i=strlen(str); i > 0; i--) {
            if (str[i] == ' ') {
                    s = i;
                    break;
            }
        }
 
        cout << "\n nomer poslednego(kotoriy s konza) probela - s = " << s;
        cout << endl << "Vivod poslednego slova iz vsego massiva -> ";
 
        for (i = s; i<strlen(str); i++) {
            cout << str[i];
        }
 
        cout << endl << "Vivod slova v novom massive(str2[j]) ->";
 
        for (i = s; i<strlen(str); i++) {
            for (j=i; j < strlen(str); j++) {
 
            }
                str2[j] = str[i];
                cout << str2[j];
        }
 
        //3(часть)--------------------------------------------------------------
 
 
    getch();
    return 0;
}
Заранее спасибо за помощь)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 22:28
Ответы с готовыми решениями:

Перестановка в строке первого и последнего слова..
Всем доброго времени суток!! Появилось вот такое задание написать программу на языке C++...

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

Указать общие символы первого и последнего слова в заданной строке (с использованием множества)
Помогите решить задачу с использованием множества: указать общие символы первого и последнего слова...

Все слова (кроме первого и последнего), длиннее К символов, заменить последовательностью из заданного символа
#include &lt;iostream&gt; using namespace std; #define N 40 void func() { cout &lt;&lt; &quot;Замена...

5
1500 / 964 / 811
Регистрация: 30.04.2016
Сообщений: 3,334
27.10.2018, 23:53 2
ELMO_much_FANCY, здравствуйте! Чем разделяются слова в строке?
0
0 / 0 / 1
Регистрация: 14.04.2015
Сообщений: 90
28.10.2018, 00:39  [ТС] 3
Доброе время суток, обычными пробелами
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.10.2018, 01:10 4
Лучший ответ Сообщение было отмечено ELMO_much_FANCY как решение

Решение

так сравниваем первое ( как в названии темы ) или второе, Вы бы определились
если второе, можно так:
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
#include <iostream>
#include <string>
#include <sstream> 
using namespace std;
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    int i=1;
    string str, word, word2;
    cout << "String:\n";
    getline(cin, str);
    
    stringstream words(str);
    while (words >> word)
    {
        if (i==2) word2=word;
        i++;
    }
    if (word2==word) cout <<"YES\n";
    else cout <<"NO\n";
    
system("pause");
return 0;
}
0
0 / 0 / 1
Регистрация: 14.04.2015
Сообщений: 90
28.10.2018, 02:38  [ТС] 5
Ой, Да, сравнивать надо 2, все верно. А через char как, я тоже плюсь, но таково задние...
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.10.2018, 14:21 6
ELMO_much_FANCY, какое задание ? в том, что Вы сформулировали изначально нет ни слова про char.
в С++ для работы со строками как правило используется тип string и строка сравнивается так if (s1==s2). можно сделать программу без строковых потоков stringstream (но используя тип string).
очень я сомневаюсь что в условии говорится использовать только char. напишите оригинал условия задачи.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 14:21
Помогаю со студенческими работами здесь

Односвязный список. Вывести сумму последнего элемента и первого, предпоследнего и последнего и т.д.
Считываю с клавиатуры числа пока не встречаю 0. Например 1 3 7 5 8 1 0 Вывожу суму последнего...

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

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

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


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

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

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