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

Строчные буквы строки преобразуйте в прописные и отсортируйте в алфавитном порядке

10.07.2011, 15:37. Просмотров 809. Ответов 9
Метки нет (Все метки)

с клавиатуры вводится строка. выберите из нее все буквы от А(а) до I(i)(строчные преобразуйте прописные) и отсортируйте их в алфавитном порядке
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2011, 15:37
Ответы с готовыми решениями:

Строчные буквы строки преобразуйте в прописные и отсортируйте в алфавитном порядке
с клавиатуры вводится строка. выберите из нее все буквы А(а) до I(i) . строчные...

Выберите из строки все буквы от Q (q) до Z (z) и отсортируйте их в алфавитном порядке
Всем доброго времени суток. Задачка: С клавиатуры вводится строка. Выберите...

Преобразовать в строке все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные
Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и...

Преобразовать все строчные буквы(как латинские, так и русские) в прописные, а прописные в строчные
Дана строка. Преобразовать в ней все строчные буквы(как латинские, так и...

Поменять все строчные буквы на прописные, прописные на строчные
Дана строка с некоторым текстом. Составить программу, которая меняет в этом...

9
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
10.07.2011, 16:11 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
#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
 
bool predicate(std::string::value_type c)
{
    static const std::string letters = "ABCDEFGHI";
 
    return letters.find(c) == std::string::npos;
}
 
int main()
{
    std::string input_string;
 
    std::cout << "Enter string: ";
    std::cin >> input_string;
 
    std::transform(input_string.begin(), input_string.end(), input_string.begin(), toupper);
    input_string.erase(std::remove_if(input_string.begin(), input_string.end(), predicate), input_string.end());
    std::sort(input_string.begin(), input_string.end());
 
    std::cout << "Result: " << input_string << std::endl;
 
    return 0;
}
Добавлено через 3 минуты
 Комментарий модератора 
А за дубли буду наказывать!
1
марианна0728
0 / 0 / 0
Регистрация: 10.07.2011
Сообщений: 10
10.07.2011, 19:57  [ТС] 3
silent_1991, обожаю вас
0
zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
10.07.2011, 21:30 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Еще, как вариант
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
#include <string>
#include <iostream>
#include <cctype>
#include <algorithm>
#include <boost/foreach.hpp>
 
int main() {
 
    setlocale(LC_ALL, "rus");
 
    std::string str;
 
    std::cout << "Введите строку: ";
    std::cin >> str;
 
    BOOST_FOREACH(char &ch, str) {
 
        ch = tolower(ch);
    }
 
    std::sort(str.begin(), str.end());
 
    std::cout << str;
 
    return 0;
}
1
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
10.07.2011, 21:32 5
zuq, вы забыли -
Цитата Сообщение от марианна0728 Посмотреть сообщение
выберите из нее все буквы от А(а) до I(i)
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
10.07.2011, 21:32 6
zuq, а как же "выберите из нее все буквы от А(а) до I(i)"?
0
zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
10.07.2011, 22:01 7
neske, точно - спасибо, сейчас исправлю_)

Добавлено через 28 минут
аааа... Все - у меня кончились идеи по реализации с BOOST_FOREACH
Может кто подскажет?
0
grizlik78
Эксперт С++
2016 / 1497 / 206
Регистрация: 29.05.2011
Сообщений: 3,117
10.07.2011, 22:23 8
zuq, после сортировки можно с помощью STL:
C++
1
2
3
4
str.erase( std::upper_bound(str.begin(), str.end(), 'I'),
        str.end());
str.erase( str.begin(),
        std::lower_bound(str.begin(), str.end(), 'A'));
Но, разумеется, работы для sort больше, чем если бы сначала удалили ненужное.
Ну или можно наоборот, не удалять ненужную, а скопировать нужную часть.
И это... У меня прописные буквы, так что нужна toupper()
0
zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
10.07.2011, 22:25 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А почему я не могу редактировать свои сообщения?? Реализовать в foreach не получилось. Использовал тот же алгоритм что и silent_1991...
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
#include <string>
#include <iostream>
#include <cctype>
#include <algorithm>
#include <boost/foreach.hpp>
 
bool qwerty(const std::string::value_type str) {
 
    std::string findString = "ABCDEFGHI";
 
    if(findString.find(str) == -1) return true;
    else return false;
}
 
int main() {
 
    setlocale(LC_ALL, "rus");
    std::string str;
 
    std::cout << "Введите строку: ";
    std::cin >> str;
 
    BOOST_FOREACH(char &ch, str) {
 
        ch = toupper(ch);
    }
 
    str.erase(remove_if(str.begin(), str.end(), qwerty), str.end());
    std::sort(str.begin(), str.end());
    std::cout << str;
 
    return 0;
}
0
grizlik78
Эксперт С++
2016 / 1497 / 206
Регистрация: 29.05.2011
Сообщений: 3,117
10.07.2011, 22:29 10
Цитата Сообщение от zuq Посмотреть сообщение
А почему я не могу редактировать свои сообщения??
Потому, что время на редактирование ограничено 10-ю минутами.
0
10.07.2011, 22:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2011, 22:29

Перевести строчные буквы строки в прописные
Подскажите, как исправить ошибку в коде: #include &lt;iostream&gt; #include...

Процедура, преобразующая все прописные русские буквы строки в строчные.
Описать процедуру LowCaseRus(S), преобразующую все прописные русские буквы...

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


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

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

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