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

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

Войти
Регистрация
Восстановить пароль
 
Насютка
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 36
#1

Из предложения напечатать те символы, которые встречаются в нем ровно один раз - C++

04.03.2014, 21:32. Просмотров 770. Ответов 6
Метки нет (Все метки)

Из заданного предложения выбрать и напечатать те символы, которые встречаются в
нем ровно один раз (в том порядке, как они встречаются в тексте).

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

Из заданного текста выбрать и напечатать те символы, которые встречаются в нем ровно один раз - C++
Не могу научиться мыслить на c++. Но старательно пытаюсь.... Если бы не традиционное "Завтра сдавать" вряд ли бы и спросил. В общем задача...

Вывести только те слова сообщения, которые встречаются в нем ровно один раз - C++
Вывести только те слова сообщения, которые встречаются в нем ровно один раз. Помогите исправить ошибку в коде. #include <iostream> ...

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

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

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

Выбрать из файла те символы, которые встречаются в нем только один раз - C++
#include <iostream> #include <fstream> #include <algorithm> #include <string> #include <Windows.h> using namespace std; ...

6
zss
Модератор
Эксперт С++
6883 / 6445 / 2155
Регистрация: 18.12.2011
Сообщений: 16,938
Завершенные тесты: 1
04.03.2014, 21:43 #2
C++
1
2
3
4
5
6
7
8
int freq[256]={0};
char str[256];
cin>>str;
for(int i=0;str[i];i++)
    freq[str[i]]++;// считаем к-во одинаковых символов
for(int i=0;i<256;i++)
    if(freq[i]==1) // если символ один
     cout<<(char)i;
1
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
04.03.2014, 22:35 #3
zss, Умный код, снимаю шляпу, но Вы бы прокоменнтировали бы его для ТС. Понять его сложно например если его спросить почему со строкой в 100 символов все можно написать так:
C++
1
2
int freq[256]={0};
char str[100];
но ни в кое случае не так:
C++
1
2
int freq[100]={0};
char str[100];
Хотя первые как минимум 32 символа пропустить можно, вряд ли пробел за символ можно считать...
0
Насютка
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 36
05.03.2014, 12:19  [ТС] #4
У меня получилось так

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
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <locale.h>
const int N=100;
void input(char a[N])
{
    int i;
    char s;
    printf_s("Введите текст, оканчивающийся точкой.\n");
    for (i=0;(s=getchar())!='.';i++) a[i]=s;
    a[i]='\0';
}
void sravn(char a[N],char b[N])
{   
    int k,l=0;
    unsigned int i,j;
    for(i=0;i<(strlen(a));i++) 
    {
        k=0;
        for (j=0;j<strlen(a);j++) if (a[j]==a[i]) k++;
        if (k==1) {b[l]=a[i];l++;}
    }
    b[l]='\0';
}
void output(char b[N])
{
    unsigned int i;
    printf_s("\nСимволы, встречающиеся в тексте ровно один раз через пробел:\n");
    for (i=0;i<strlen(b);i++) printf_s("%c ",b[i]);
}
void main()
{
    char tx[N],fin[N];
 
    setlocale(LC_CTYPE, "Russian"); 
    input(tx);
    sravn(tx,fin);
    output(fin);
    _getch();
}
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
05.03.2014, 13:30 #5
Что то алгоритм сравнения ваш не пойму
0
Насютка
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 36
14.03.2014, 13:53  [ТС] #6
zss, ваша программа слишком сложная и непонятная для меня, т.к. я еще многого не изучила
0
zss
Модератор
Эксперт С++
6883 / 6445 / 2155
Регистрация: 18.12.2011
Сообщений: 16,938
Завершенные тесты: 1
15.03.2014, 10:25 #7
Цитата Сообщение от Насютка Посмотреть сообщение
ваша программа слишком сложная и непонятная для меня, т.к. я еще многого не изучила
Наоборот, проще некуда.
Надо только понять вот это:
C++
1
freq[str[i]]++;// считаем к-во одинаковых символов
str[i] - это не только i-я буква, но и ее код, если считать, что str[i] - это целое число.
поэтому, мы увеличиваем на 1 элемент массива freq с номером, равным коду символа.
В конце цикла в массиве окажутся числа, равные количеству встретившихся букв
с соответствующим кодом.
Останется только найти, где значения freq[i] равны единице.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2014, 10:25
Привет! Вот еще темы с ответами:

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

Выбрать из текста только те символы, которые встречаются в нем только один раз - C++
Здравствуйте, помогите пожалуйста написать программу:) Условие. Дана строка, содержащая текст на русском языке. Выбрать из него только те...

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

Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте - C++
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в...


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

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

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