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

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

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

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

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

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

помогите,пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переместить буквы из исходного списка в отдельный список букв (C++):

Вынести в отдельный список все отрицательные элементы исходного - C++
Здравствуйте. Помогите пожалуйста решить задачу. Набросок есть, но программа не работает. Предположим, что уже построен и задан...

Вывести количество букв и погруппированные буквы в отдельный файл Result.txt - C++
Здравствуйте! Очень нужна помощь. Есть файл Vhidniy.txt, который забит символами. С него считать количество букв и погруппировать их...

Отсортировать в отдельный список игрушки и упорядочить оба списка по алфавиту - C++
Нужна помощь. Задача: создать циклический однонаправленный список, включающий в себя имена предметов и типы предметов( 2 инф. поля)...

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

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

Создать два списка и все нечетные элементы списков переместить в третий список - C++
как создать 2 однонаправлених списка и все непарные елементи обоих списков переместить в 3? буду очень благодарен за любую помощь

16
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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);
}
1
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 01:47  [ТС] #3
а что вводить при запуске?
последовательность любых символов?
как ее закончить тогда?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.12.2011, 02:05 #4
Цитата Сообщение от besbyblik Посмотреть сообщение
как ее закончить тогда?
Linux Ctrl+D, Windows Ctrl+Z.
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 02:53  [ТС] #5
ввела строку,сод буквы, цифры и другие символы
нажала Ctrl+Z
ничего не происходит
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.12.2011, 12:23 #6
Цитата Сообщение от besbyblik Посмотреть сообщение
ничего не происходит
Что значит "ничего не происходит"?
1) программа просто завершается не показывая результата
2) программа остаётся "висеть" ожидая ввод
?
P.S. Попробуйте запустить программу непосредственно из коммандной строки.
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 12:41  [ТС] #7
второе
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.12.2011, 13:38 #8
Попробуйте перед <Ctrl+Z> нажать <Enter>, либо нажать <Ctrl+Z> дважды.
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 13:44  [ТС] #9
http://s49.***********/i124/1112/3b/b6a6483cbcfe.png
вот что получилось
0
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 символы.
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 17:19  [ТС] #11
ввод латинскими буквами ничего не изменил

Net_Wanderer, где и на что вы предлагаете изменить?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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")); 
    //...
}
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
27.12.2011, 22:27 #13
Цитата Сообщение от besbyblik Посмотреть сообщение
ввод латинскими буквами ничего не изменил
проверьте ещё раз, все работает (надеюсь rangerx не будет возражать)
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2011, 08:53  [ТС] #14
я поняла почему не выводил!
просто я нажимала в vs на кнопку,а не f5

Добавлено через 10 часов 21 минуту
вопрос-это для односвязного линейного списка или нет?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
28.12.2011, 19:17 #15
Цитата Сообщение от besbyblik Посмотреть сообщение
вопрос-это для односвязного линейного списка или нет?
Да, в программе используется односвязный линейный список.
0
28.12.2011, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 19:17
Привет! Вот еще темы с ответами:

Создать индексированный список с указателями на определенные места исходного списка - C++
индексированные списки. нужно создать список(индексированный) с указателями на определенные места исходного списка?? Добавлено...

Вынести код создания списка в отдельный модуль - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct A { int key; }; class List { public:

Переместить элемент внутри списка std::list - C++
Что-то я не пойму, простая вроде задача - переместить элемент внутри спиcка std::list - стандартной функции нету что-ли?

Дан список, переместить локальные максимумы - C++
Дан список из n целых чисел {a}_{1},{a}_{2},..{a}_{n}. Переместить в начало списка все элементы, которые являются локальными максимумами,...


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

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

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