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

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

Войти
Регистрация
Восстановить пароль
 
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
#1

Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. - C++

31.10.2013, 20:27. Просмотров 439. Ответов 6
Метки нет (Все метки)

Даны две строки. Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.

В задании не могу сделать сортировку... Помогите с кодом кому не сложно...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
int main () { int i,k=0;
char str1[200]; char str2[200];
cout<<"vvedite stroku 1"<<endl;
   cin.getline(str1, sizeof(str1));
cout<<"vvedite stroku 2"<<endl;
   cin.getline(str2, sizeof(str2)); //вводим 2 строки
 
cout<<"vivod 2 strok"<<endl;
  cout<<endl<<str1<<endl;
 cout<<str2<<endl; //вывод 2 строк
 
for (i=0;str1[i]!='\0';i++) k++;
cout<<"razmer 1 stroki: "<<k<<endl; //размер 1 строки
 
for(i=0;i<=k;i++)
cout<<str1[i]<<endl; //вывод букв 1 строки
 
cout<<"rabotaet";
system("pause");
return 0; }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 20:27     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
Посмотрите здесь:

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

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

Вывести все цифры заданного с клавиатуры числа по одному разу в порядке их возрастания - C++
Вывести все цифры заданного с клавиатуры числа по одному разу в порядке их возрастания. Задача на множества.

в C++ Даны два слова.Вывести все общие буквы этих слов по одному разу. - C++
Например, если заданы слова «процессор» и «информация», то ответом должно быть: «р о ц»

Вывести на экран в алфавитном порядке все символы которые входят в массив по одному разу - C++
Срочно нужна программа... Вот условие... Задан массив из k символов латинского алфавита. Вывести на экран в алфавитном порядке все...

Вывести на экран в алфавитном порядке все символы, которые входят в заданный массив по одному разу - C++
Задан массив из k символов латинского алфавита. Вывести на экран в алфавитном порядке все символы, которые входят в этот массив по...

Записать студента в ведомость и вывести ее в порядке, обратном алфавитному - C++
Само задание: Один метод должен в новой ведомости размещать студентов в порядке, противоположном алфавитному. Другой – записать нового...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
31.10.2013, 21:23     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #2
Цитата Сообщение от Alexandr- Посмотреть сообщение
Даны две строки. Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
В задании не могу сделать сортировку... Помогите с кодом кому не сложно...
Держи
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>
using namespace std;
 
int main()
{
    size_t i, j;
    string str1 = "ab125cdEfKOWg";
    string str2 = "rtydeb";
    string sout;
 
    cout<<"str1 : "<<str1<<endl;
    cout<<"str2 : "<<str2<<endl;
    for( i = 0; i < str1.length(); i++ )
    {
        if( isalpha(str1[i]) )//ñèìâîë ÿâëÿåòñÿ áóêâîé?
        if( islower(str1[i]) )//ñòðî÷Г*Г*Гї ëè ГЎГіГЄГўГ*
        if( str2.find(str1[i], 0) == string::npos )//Èùåì ñèìâîë Г*ГҐ âõîäÿùèé ГўГ® 2-ГіГѕ ñòðîêó
        if( sout.find(str1[i], 0) == string::npos )//ÂûõîäГ*Г*Гї ñòðîêГ* Г*ГҐ ñîäåðæèò ГіГЄГ*Г§Г*Г*Г*ûé ñèìâîë
            sout += str1[i];
    }
 
    //ÑîðòèðîâêГ*
    for( i = 0;     i < sout.length(); i++ )
    for( j = i + 1; j < sout.length(); j++ )
    {
        if( sout[i] < sout[j] )
            swap(sout[i], sout[j]);
    }
    cout<<"sout : "<<sout<<endl;
    cin.get();
    return 0;
}
Миниатюры
Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.  
-=ЮрА=-
Заблокирован
Автор FAQ
31.10.2013, 21:24     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #3
Проверка здесь
http://codepad.org/MHZN5Uyp
Output:
str1 : ab125cdEfKOWg
str2 : rtydeb
sout : gfca
MrGluck
Модератор
Эксперт CЭксперт С++
7158 / 4324 / 630
Регистрация: 29.11.2010
Сообщений: 11,745
01.11.2013, 02:18     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <set>
#include <string>
#include <cctype>
#include <algorithm>
#include <iterator>
 
int main()
{
    const std::string str1 = "eniki beniki eli vareniki", str2 = "orange";
    const std::set<char> s1(str1.begin(), str1.end()), s2(str2.begin(), str2.end());
    std::copy_if(s1.rbegin(), s1.rend(), std::ostream_iterator<char>(std::cout),
        [&s2](const char x) { return islower(x) && s2.find(x) == s2.end(); });
}
Нет нужды проверять isalpha, islower это итак осуществит
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
01.11.2013, 22:43  [ТС]     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #5
Объясните пожалуйста подробнее, что означает строка:
C++
1
if( sout.find(str1[i], 0) == string::npos )
MrGluck
Модератор
Эксперт CЭксперт С++
7158 / 4324 / 630
Регистрация: 29.11.2010
Сообщений: 11,745
01.11.2013, 22:49     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #6
если в строке sount начиная с начала (поэтому 0) не содержится буква str1[i] (если не содержится, то функция string.find возвращает константу string::npos) то

Добавлено через 17 секунд
http://www.cplusplus.com/reference/string/string/find/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 23:00     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
Еще ссылки по теме:

Оставить первую половину текста без изменений, а вторую записать в обратном порядке - C++
Дан текст: оставить первую половину текста без изменений , а вторую записать в обратном порядке

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

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

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

Напечатать в алфавитном порядке все буквы входящие в текст - C++
Будьте добры :C Задан текст из латинских строчных букв, за которым следует точка. Напечатать в алфавитном порядке все буквы, которые...


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2013, 23:00     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. #7
Alexandr-, если на пальцах, то find это strstr и strchr в одном флаконе.
Мнемокод
C++
1
2
3
4
5
6
7
8
9
char str[] = "some text";
if( strchr(str, 'p') )
{
     //ветвь find != string::npos
}
else
{
     //ветвь string::npos
}
Спецификация по данному методу http://www.cplusplus.com/reference/string/string/find/
Yandex
Объявления
01.11.2013, 23:00     Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
Ответ Создать тему
Опции темы

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