Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
JanNovik
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 22
1

Работа со строками. Как вывести последнее слово палиндром в моей строке?

11.12.2015, 19:15. Просмотров 358. Ответов 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
#define _CRT_SECURE_NO_WARNINGS 
#include <iostream> 
#include <cstring> 
using namespace std;
 
int main(){
    char *str = new char[301];
    cout << "Enter the string" << endl;
    cin.getline(str, 301);
    cout << "You entered: " << str << endl << "Search words" << endl;
    char *pch = strtok(str, " ,.-");
    int i = 0;
    while (pch != NULL){
        if ((pch[i] > pch[i + 1]) || (pch[i + 1] == NULL)){
            if (pch[i + 1] != NULL) {
                i = i + 1;
                continue;
            }
            cout << pch << endl;
        }
        else{
            i = 0;
            pch = strtok(NULL, " ,.-");
        }
    }
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2015, 19:15
Ответы с готовыми решениями:

Вывести предупреждение, если в вводимой строке первое и последнее слово одинаковое.
Сижу вторые сутки уже над этим...Надо в общем вывести на экран предупреждение, если в вводимой...

Как выделить строке последнее слово?
Вот нужно в последнем слове строки определить количество букв. Окей, я понимаю, как создать цикл,...

Как ищется последнее слово в строке?
Народ , подскажите , а как ищется последнее слово в строке ?

Как выделить последнее слово в строке
Напишите как это сделать

Как удалить первое и последнее слово в строке
Подскажите, пожалуйста, как можно удалить первое и последнее слово в строке. причем вводятся...

7
Геомеханик
807 / 610 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
11.12.2015, 19:37 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
#include <iostream>
#include <cctype>
#define is_delim(c) (ispunct((c)) || isspace((c)))
 
char* poli_end(char* s){
    char* a, *b, *p = NULL;
    int   k = 0,  n = 0;
    do {
        if(*s && !is_delim(*s))
            ++k;
        else if(k > 0){
            a = s - k;
            b = s - 1;
            while((a < b) && (*a == *b)){
                ++a;
                --b;
            }
            if(a >= b){
                p = s - k;
                n = k;
            }
            k = 0;
        }
    } while(*s++ != '\0');
 
    if(p != NULL)
        *(p + n) = '\0';
    return p;
}
 
int main(void){
    char s[] = "ada, wow, bla, kazak, end.";
    char* p  = poli_end(s);
    if(p != NULL)
        std::cout << p << std::endl;
    return 0;
}
Пример работы кода
0
JanNovik
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 22
11.12.2015, 19:40  [ТС] 3
А вы можете преобразовать мой код?
0
Dimension
Dimension
574 / 444 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
11.12.2015, 19:54 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;
int main() {
    char s[] = "ada, wow, bla, kazak, end.";
    char* p = strtok(s, " ,.");
    string ans,t;
    while(p!=NULL){
        t = p;
        reverse(t.begin(),t.end());
        if (p==t)
            ans = p;
        p = strtok(NULL," ,.");
    }
    cout << ans;
    return 0;
}
1
11.12.2015, 19:54
JanNovik
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 22
11.12.2015, 20:02  [ТС] 5
reverse(t.begin(), t.end()) что это значит?
0
Dimension
Dimension
574 / 444 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
11.12.2015, 20:04 6
развернуть слово
0
JanNovik
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 22
11.12.2015, 20:09  [ТС] 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
#define _CRT_SECURE_NO_WARNINGS 
#include <iostream> 
#include <cstring> 
using namespace std;
 
int main(){
    char *str = new char[301];
    cout << "Enter the string" << endl;
    cin.getline(str, 301);
    cout << "You entered: " << str << endl << "Search words" << endl;
    char *pch = strtok(str, " ,.-");
    int i = 0;
    while (pch != NULL){
        if ((pch[i] > pch[i + 1]) || (pch[i + 1] == NULL)){
            if (pch[i + 1] != NULL) {
                i = i + 1;
                continue;
            }
            int t = pch;
            cout << pch << endl;
        }
        else{
            i = 0;
            pch = strtok(NULL, " ,.-");
        }
    }
    return 0;
}
0
Dimension
Dimension
574 / 444 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
11.12.2015, 20:34 8
а может вы не будете мне садится на шею и сами что-нибудь сделайте?
0
11.12.2015, 20:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 20:34

В заданной строке поменять последнее слово и слово с указанным номером
В строке нужно поменять последнее слово и слово,номер которого указывается(если слова с таким...

Напечатать отдельными строками первое и последнее слово строки
4. Ввести с клавиатуры строку символов. Напечатать отдельными строками первое и последнее слово. ...

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


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

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

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