Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 4
1

Перевернуть слова состоящие только из заглавных букв

10.06.2018, 17:45. Показов 2289. Ответов 3

Author24 — интернет-сервис помощи студентам
Приветствую. Задача стоит такова, что слова только из заглавных букв должны быть перевёрнуты в массиве символьного типа. Пробовал напрямую -- не выходит. Может есть какие-то хитрости?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2018, 17:45
Ответы с готовыми решениями:

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

Удалить из строки слова, состоящие только из прописных букв
Работа со строками (С) Дана строка символов, состоящая из прописных и строчных латинских букв и...

Удалить все слова, состоящие только из латинских букв
видаляє всі слова, що складаються тільки з латинських літер....

Напечатать все слова, состоящие только из разных латинских букв
напечатать все слова, состоящие только из разных латинских букв.(Большие и малые буквы не...

3
10 / 10 / 13
Регистрация: 27.09.2016
Сообщений: 248
10.06.2018, 19:49 2
Лучший ответ Сообщение было отмечено D_Delter как решение

Решение

D_Delter,
скорее всего не лучший вариант, но я долго не думал. кроме того такой алгоритм будет переворачивать последнее слово только при условии, что в конце стоит пропуск
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
const int SIZE = 35;
char arr[SIZE] = "abc DEFG HIgk lmn op QRS tuv wzyx ";
    
cout << arr << endl;
 
int i = 0;
    while (i != SIZE) // пока не пройдем каждую букву
    {
        if (isupper(arr[i]))// если буква заглавная
        {
            int startWord = i;// запоминаем начало этого слова
 
            // проверяем слово полностью из больших букв
            int j = i;
            while (isupper(arr[j]) && arr[j] != ' ')// пока слово из больших букв и пока не закончилось
            {
                ++j;// двигаемся по слову
            }
            i = j; // движение за словом теперь с этого места
            // если дошли до пропуска, значит слово полностью из больших букв
            if (arr[j] == ' ')
            {
                --j;// движение назад, пропуск не нужно менять
                // переворачиваем слово
                while (startWord <= j)
                {
                    swap(arr[startWord], arr[j]);
                    ++startWord;
                    --j;
                }
            }
        }
        else
        {
            ++i;
        }
    }
    
cout << arr << endl;
Добавлено через 36 минут
ну или как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    string str = "abc DEFG HIgk lmn op QRS tuv wzyx";
    istringstream iss(str);
    vector<string> results((istream_iterator<string>(iss)), istream_iterator<string>());
 
    for_each(results.begin(), results.end(),
        [](string& s) 
    {
        if ( all_of(s.begin(), s.end(), [](char c) { return isupper(c); }) )
        {
            reverse(s.begin(), s.end());
        }
    }
);
 
 
    copy(results.begin(), results.end(), ostream_iterator<string>(cout, " "));
1
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 4
10.06.2018, 20:51  [ТС] 3
Проблема в том, что надо статический массив и именно символьный тип(
0
10 / 10 / 13
Регистрация: 27.09.2016
Сообщений: 248
10.06.2018, 21:00 4
D_Delter, ну тогда первый вариант
0
10.06.2018, 21:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2018, 21:00
Помогаю со студенческими работами здесь

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

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

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

Создать программу, которая подсчитывает количество чисел в тексте и выводит на екран все слова, состоящие только из латинских букв
Создать программу , которая подщитывает количество чисел в тексте (не цыфр, а именно чисел);...


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

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