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

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

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

Двоичные файлы.Дано предложение.Создать файл и вывести в него все символы этого предложения,отличные от знаков препинания.Вывести содержимое на экран. C++
C++ строки.... вывести на экран все символы которые находятся во второй половине текста
Вывести на экран все символы строки кроме букв C++
C++ С клавиатуры задается двухзначное целое число. Необходимо вывести на экран все его делители
C++ Вывести на экран все символы, расположенные внутри скобок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Drum and C++
12 / 14 / 0
Регистрация: 03.08.2011
Сообщений: 213
07.03.2012, 21:18     Необходимо вывести на экран все различные символы строки #2
это cin.getline(buf , 256) ???
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
07.03.2012, 21:31  [ТС]     Необходимо вывести на экран все различные символы строки #3
да...
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");
}
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
07.03.2012, 21:47  [ТС]     Необходимо вывести на экран все различные символы строки #5
а если не cin.getline(buf , 256)?
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
07.03.2012, 21:51     Необходимо вывести на экран все различные символы строки #6
То можно использовать scanf - про него читай в MSDN. А можно вообще посимвольно читать в цикле функцией getchar пока не будет нажат Enter

Добавлено через 1 минуту
Еще можно использовать функцию gets, либо... да еще кучу вариантов придумывать можно. Берется просто самый удобный и все. предложенный выше самый оптимальный.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 22:50     Необходимо вывести на экран все различные символы строки #7
Цитата Сообщение от tatianlv Посмотреть сообщение
Необходимо вывести на экран все различные символы строки.
http://www.cplusplus.com/reference/algorithm/unique/
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(); // для остановки программы перед выходом
}
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
08.03.2012, 01:24  [ТС]     Необходимо вывести на экран все различные символы строки #9
спасибо большое!
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 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/508fe1...977f4e41b34e7e
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 ':'
когда исправляешь, то всё равно не работает
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.03.2012, 14:28     Необходимо вывести на экран все различные символы строки #12
tatianlv, это новый стандарт, который не поддерживается Вашим компилятором. Либо исправляйте(здесь легко убрать), либо обновите компилятор.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2012, 23:37     Необходимо вывести на экран все различные символы строки
Еще ссылки по теме:

Цикл: Вывести на экран все различные элементы набора данных по возрастанию C++
C++ Строки. Вывести на экран все символы, расположенные внутри скобок
C++ Вывести на экран все различные буквы строки с использованием strchr

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

Или воспользуйтесь поиском по форуму:
tatianlv
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 19
08.03.2012, 23:37  [ТС]     Необходимо вывести на экран все различные символы строки #14
спасибо большое!!!!!!!!!!!вы мне очень сильно помогли!
Yandex
Объявления
08.03.2012, 23:37     Необходимо вывести на экран все различные символы строки
Ответ Создать тему
Опции темы

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