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

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

Войти
Регистрация
Восстановить пароль
 
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
#1

Переместить буквы из исходного списка в отдельный список букв - C++

26.12.2011, 21:46. Просмотров 838. Ответов 16
Метки нет (Все метки)

организуйте помещение вводимых символов в список, пока не будет достигнут конец входного потока. Затем переместить буквы из исходного списка списка в отдельный список букв, цифры-в список цифр, а остальные символы - в третий список. Вывести списки

помогите,пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 21:46     Переместить буквы из исходного списка в отдельный список букв
Посмотрите здесь:

C++ Создать индексированный список с указателями на определенные места исходного списка
C++ Дан список, переместить локальные максимумы
C++ Вывести количество букв и погруппированные буквы в отдельный файл Result.txt
Переместить элемент внутри списка std::list C++
Вынести код создания списка в отдельный модуль C++
В строке, состоящей из алфавитно-цифровых символов, переместить все буквы в ее начало C++
В строке, состоящей из алфавитно-цифровых символов, переместить все буквы в ее начало C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.12.2011, 01:25     Переместить буквы из исходного списка в отдельный список букв #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
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
79
80
81
82
#include <iostream>
#include <cctype>
 
struct node
{
    char data;
    node* next;
    node* tail;
 
    node(char data)
        : data(data), next(NULL), tail(NULL)
    {
    }
};
 
void list_add(node*& list, char data)
{
    if(list == NULL)
    {
        list = new node(data);
        list->tail = list;
        return;
    }
 
    list->tail->next = new node(data);
    list->tail = list->tail->next;
}
 
void list_println(node* list)
{
    for(node* p = list; p != NULL; p = p->next)
        std::cout << p->data;
    std::cout << std::endl;
}
 
void list_free(node* list)
{
    node* p;
    while(list != NULL)
    {
        p = list;
        list = list->next;
        delete p;
    }
}
 
int main()
{
    node* list = NULL;
 
    char ch;
    while(std::cin >> ch)
        list_add(list, ch);
 
    node* alpha_list = NULL;
    node* digit_list = NULL;
    node* other_list = NULL;
 
    for(node* p = list; p != NULL; p = p->next)
    {
        if(std::isdigit(p->data))
            list_add(digit_list, p->data);
        else if(std::isalpha(p->data))
            list_add(alpha_list, p->data);
        else
            list_add(other_list, p->data);
    }
 
    std::cout << "letters: ";
    list_println(alpha_list);
 
    std::cout << "digits: ";
    list_println(digit_list);
 
    std::cout << "other: ";
    list_println(other_list);
 
    list_free(list);
    list_free(alpha_list);
    list_free(digit_list);
    list_free(other_list);
}
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 01:47  [ТС]     Переместить буквы из исходного списка в отдельный список букв #3
а что вводить при запуске?
последовательность любых символов?
как ее закончить тогда?
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.12.2011, 02:05     Переместить буквы из исходного списка в отдельный список букв #4
Цитата Сообщение от besbyblik Посмотреть сообщение
как ее закончить тогда?
Linux Ctrl+D, Windows Ctrl+Z.
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 02:53  [ТС]     Переместить буквы из исходного списка в отдельный список букв #5
ввела строку,сод буквы, цифры и другие символы
нажала Ctrl+Z
ничего не происходит
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.12.2011, 12:23     Переместить буквы из исходного списка в отдельный список букв #6
Цитата Сообщение от besbyblik Посмотреть сообщение
ничего не происходит
Что значит "ничего не происходит"?
1) программа просто завершается не показывая результата
2) программа остаётся "висеть" ожидая ввод
?
P.S. Попробуйте запустить программу непосредственно из коммандной строки.
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 12:41  [ТС]     Переместить буквы из исходного списка в отдельный список букв #7
второе
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.12.2011, 13:38     Переместить буквы из исходного списка в отдельный список букв #8
Попробуйте перед <Ctrl+Z> нажать <Enter>, либо нажать <Ctrl+Z> дважды.
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 13:44  [ТС]     Переместить буквы из исходного списка в отдельный список букв #9
http://s49.***********/i124/1112/3b/b6a6483cbcfe.png
вот что получилось
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
27.12.2011, 13:57     Переместить буквы из исходного списка в отдельный список букв #10
Цитата Сообщение от besbyblik Посмотреть сообщение
http://s49.***********/i124/1112/3b/b6a6483cbcfe.png
вот что получилось
Полагаю, что причина в функциях isdigit и isalpha.
Хотя они и принимают int, их параметер должен быть либо EOF, либо unsigned char, приведенный к int.

Вводите только ASCII символы.
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 17:19  [ТС]     Переместить буквы из исходного списка в отдельный список букв #11
ввод латинскими буквами ничего не изменил

Net_Wanderer, где и на что вы предлагаете изменить?
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.12.2011, 21:52     Переместить буквы из исходного списка в отдельный список букв #12
besbyblik, исправьте в исходном коде везде, где написано char на unsigned char.
P.S. Если вам нужна кириллица подключите заголовочный файл locale
C++
1
#include <locale>
и добавьте первой строкой в функцию main строку std::locale::global(std::locale("Russian_Russia.866"));
C++
1
2
3
4
5
6
int main()
{
    // не знаю или правильно указал имя локали, но с этим думаю разберётесь
    std::locale::global(std::locale("Russian_Russia.866")); 
    //...
}
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
27.12.2011, 22:27     Переместить буквы из исходного списка в отдельный список букв #13
Цитата Сообщение от besbyblik Посмотреть сообщение
ввод латинскими буквами ничего не изменил
проверьте ещё раз, все работает (надеюсь rangerx не будет возражать)
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2011, 08:53  [ТС]     Переместить буквы из исходного списка в отдельный список букв #14
я поняла почему не выводил!
просто я нажимала в vs на кнопку,а не f5

Добавлено через 10 часов 21 минуту
вопрос-это для односвязного линейного списка или нет?
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
28.12.2011, 19:17     Переместить буквы из исходного списка в отдельный список букв #15
Цитата Сообщение от besbyblik Посмотреть сообщение
вопрос-это для односвязного линейного списка или нет?
Да, в программе используется односвязный линейный список.
vorobdjek
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 4
10.03.2017, 15:48     Переместить буквы из исходного списка в отдельный список букв #16
Здравствуйте, если кто то знает скажите пожалуйста что здесь не так


#include <iostream>
using namespace std;
int main()
{
int value;
cout << "vvedite vse ingridiennti: " << endl;
cin >> value;

if (value == 'margarin dlia vipecki, smetana, muka, jajca, sahar, moloko, maslo slivocnoje')

cout << "tort NAPOLEON: " << endl;
else if (value != 'margarin dlia vipecki, smetana, muka, jajca, sahar, moloko, maslo slivocnoje')

cout << "NENAIDENO: " << endl;

return 0;
все время показывает NENaIDENO
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2017, 16:51     Переместить буквы из исходного списка в отдельный список букв
Еще ссылки по теме:

C++ В непустом динамическом списке последний элемент переместить в начало списка
C++ Отсортировать в отдельный список игрушки и упорядочить оба списка по алфавиту
C++ Построить список из положительных элементов исходного списка
C++ Построить список из положительных элементов исходного списка

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,040
10.03.2017, 16:51     Переместить буквы из исходного списка в отдельный список букв #17
Цитата Сообщение от vorobdjek Посмотреть сообщение
Здравствуйте, если кто то знает скажите пожалуйста что здесь не так
Тегов форматирования кода не хватает.

Цитата Сообщение от vorobdjek Посмотреть сообщение
все время показывает NENaIDENO
Правильно, вы же сами это явно выводите.

6E3HOrNM
Yandex
Объявления
10.03.2017, 16:51     Переместить буквы из исходного списка в отдельный список букв
Ответ Создать тему
Опции темы

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