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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
#1

Необходимо вывести на экран все различные символы строки - C++

07.03.2012, 20:49. Просмотров 1174. Ответов 13
Метки нет (Все метки)

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

Вывести на экран все различные буквы строки с использованием strchr - C++
Как можно применить strchr для вывода всех различных букв строки? Вот сделал без этой функции, все работает как надо, но теперь нужно с...

Вывести на экран все символы строки кроме букв - C++
дана строка вывести на экран символы кроме букв

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

Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки - C++
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой строке нечетные символы, во второй четные символы исходной...

Цикл: Вывести на экран все различные элементы набора данных по возрастанию - C++
Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию. Данный набор может содержать одинаковые элементы. Вывести в том...

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

13
Drum and C++
12 / 14 / 0
Регистрация: 03.08.2011
Сообщений: 213
07.03.2012, 21:18 #2
это cin.getline(buf , 256) ???
0
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
07.03.2012, 21:31  [ТС] #3
да...
0
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
07.03.2012, 21:39 #4
Вариантов куча, вот один зубодробительный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>  
#include <iostream>  
#include <string>
#include <set>
using namespace std; 
 
void main() 
{
    string str;
    getline(cin, str);
    set<char> res_str;
    for_each(str.begin(), str.end(), [&] (char i)->bool {res_str.insert(i); return 1;});
    for_each(res_str.begin(), res_str.end(), [&] (char i)->bool {cout << i; return 1;});
    cout << endl;
    system("pause");
}
1
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
07.03.2012, 21:47  [ТС] #5
а если не cin.getline(buf , 256)?
0
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
07.03.2012, 21:51 #6
То можно использовать scanf - про него читай в MSDN. А можно вообще посимвольно читать в цикле функцией getchar пока не будет нажат Enter

Добавлено через 1 минуту
Еще можно использовать функцию gets, либо... да еще кучу вариантов придумывать можно. Берется просто самый удобный и все. предложенный выше самый оптимальный.
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 22:50 #7
Цитата Сообщение от tatianlv Посмотреть сообщение
Необходимо вывести на экран все различные символы строки.
http://www.cplusplus.com/reference/algorithm/unique/
1
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
07.03.2012, 23:38 #8
Слона то и проглядел, нужно ведь на C было решить...
Вот почти сишный вариант:
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
#include <cstdio>
#include <cstring>
#include <malloc.h>
#include <conio.h> // не из сишного стандарта, нужна для getch()
 
unsigned answ_str_len(1); // длина пустой строки уникальных символов
 
// Функция собирает коллекцию уникальных символов
char check_char(char*& char_vec, char push_ch)          // char*& - допустимо ли в Си?
{
    char answ = -1;
 
    if (char_vec == NULL) 
    {
        char_vec = (char*) malloc(sizeof(char) * answ_str_len);
        char_vec[0] = '\0';
    }
 
    for (unsigned i(0); i < answ_str_len; ++i)
    {
        if (push_ch == char_vec[i])
        {
            return answ;
        }
    }
    ++answ_str_len;
    char_vec = (char*)realloc(char_vec, sizeof(char) * (answ_str_len));
    char_vec[answ_str_len - 2] = push_ch;
    char_vec[answ_str_len - 1] = '\0';
    answ = push_ch;
    return answ;
}
 
int main() 
{
    char *str(NULL), *answ_str(NULL);
 
    str = (char*) calloc(1024, sizeof(char));
 
    printf("Input your string: ");
    gets(str);
 
    for (unsigned k(0); k < strlen(str); ++k)
        if(str[k] != ' ') check_char(answ_str, str[k]); 
 
    printf("\nAnswer string = %s\n", answ_str);
    getch(); // для остановки программы перед выходом
}
1
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
08.03.2012, 01:24  [ТС] #9
спасибо большое!
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
08.03.2012, 12:26 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Учитесь


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <set>
 
int main()
{
    std::string Str = "hello, this is my input string";
  //  std::getline(std::cin, Str);
    std::set <char> Set(Str.begin(), Str.end());
    for(char i: Set)
        std::cout<<i<<" ";
    return 0;
}
http://liveworkspace.org/code/508fe1a774c0c7f10d977f4e41b34e7e
0
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
08.03.2012, 14:27  [ТС] #11
Цитата Сообщение от Dekio Посмотреть сообщение
for(char i: Set)
Здесь мне выдаёт ошибку error C2143: syntax error : missing ',' before ':'
когда исправляешь, то всё равно не работает
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.03.2012, 14:28 #12
tatianlv, это новый стандарт, который не поддерживается Вашим компилятором. Либо исправляйте(здесь легко убрать), либо обновите компилятор.
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
08.03.2012, 20:18 #13
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main(void)
{
   char* p;
   char s[256] = "";
 
   printf("string: ");
   scanf("%255[^\n]", s);    
 
   for(p = s; *p; ++p)               
      if(!strchr(p + 1, *p))                         
     printf("%c ", *p);   
 
   putchar('\n');
 
   return 0;
}
1
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
08.03.2012, 23:37  [ТС] #14
спасибо большое!!!!!!!!!!!вы мне очень сильно помогли!
0
08.03.2012, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2012, 23:37
Привет! Вот еще темы с ответами:

Вывести на экран все символы, расположенные внутри скобок - C++
Прошу помочь решить задачки!:(очень нужно (Билет №22) Дана строка, среди символов которой есть одна открывающаяся и одна...

Двоичные файлы.Дано предложение.Создать файл и вывести в него все символы этого предложения,отличные от знаков препинания.Вывести содержимое на экран. - C++
плллиииз =)

Вывести на экран символы строки по возрастанию их кода ASCII - C++
2) После ввода с клавиатуры произвольного ряда, вывести на экран этот ряд с отсортированными в нем символами ( у порядке возростания кодов...

Вывести на экран все слова, которые имеют даные символы - C++
Вывести на экран все слова, которые имеют даные символы. Написал кусок кода, незнаю как реализовать вывод. #include &lt;iostream&gt; #include...


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

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

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