Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Navka
1 / 1 / 0
Регистрация: 17.05.2015
Сообщений: 66

Найти ошибку: определить входящие символы в строку

21.01.2016, 21:28. Показов 3068. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчани! Очень нужна ваша помощь.
Задача такова: "Для заданной строки определить все входящие в нее символы. Например: строка abccbbbabba состоит из символов "a", "b" и "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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
 
int main()
{
    string in_str;
    char str;
    int i;
    cin >> in_str;
    for (i = 1; i <in_str.size(); i++)
    //for (i = 1; i < in_str.size() && in_str[i] == str; ++i)
    {
        if (in_str[i] != str) {
            str = str + in_str[i];
        }
        if (in_str[i] == str) {
            cout << in_str[i] << endl;
            str = str - in_str[i];
        }
        system("pause");
        return 0;
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2016, 21:28
Ответы с готовыми решениями:

Определить символы в первой строке не входящие в другую строку
Доброго времени суток. Пытаюсь организовать поиск, но что-то выходит не так. Суть задания: За основу брал код здесь: .data ...

В заданной строке с нулевым завершителем определить символы, не входящие в другую строку
Есть вот такой код. Нужно его изменить так, чтобы программа определила символы первой строки которых нет в другой строке и записала их в...

В заданной строке с нулевым завершителем определить символы, входящие в другую строку
Записывает первую строку в результирующую , как исправить? .data str1 db &quot;qaz123&quot;,0 str2 db &quot;war426&quot;,0 res...

45
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2016, 21:10
Лучший ответ Сообщение было отмечено Navka как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Navka Посмотреть сообщение
итератор - это штука, которая на что-то указывает. Правильно понимаю?
не совсем. Итератор это объект определяющий(реализующий) интерфейс содержащий операции разыменования, инкремента, проверки на равенство и не равенство, а также присваивания для обхода контейнера.

Цитата Сообщение от Navka Посмотреть сообщение
Но в целом то, что я написала, правильно же?
С точки зрения синтаксиса - да. Для начала лучше свой код, рабочий и кривой, чем чужой и оптимизированный.
С точки зрения решения задачи - нет. Вы не можете знать, что пробельный символ будет наименьшим в вашей строке(но это ничего).
С точки зрения способа решения - нет. Вы делаете много лишнего:
Что это:
C++
1
2
3
4
5
6
auto del = dict.begin(); 
auto n = *del; 
 if (n == ' ') 
    {
        del = dict.erase(del);//удаляем пробелы
    }
если можно просто написать
C++
1
2
 if (*(dict.begin()) == ' ') 
...
и вообще смысл упражнения был, чтобы вы почитали описание методов для контейнера std::set<>. Я ожидал увидеть такое решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <set>
 
int main() {
    std::string line;
    std::getline(std::cin,line);
    
    std::set<char> dict(line.begin(),line.end());
    dict.erase(' ');
    for( const auto &el :dict)
        std::cout<<el;
    std::cout<<std::endl;
    return 0;
}
http://ideone.com/K5uQNZ

P.S Да и const в for-range я тоже не просто так пишу.
2
 Аватар для Navka
1 / 1 / 0
Регистрация: 17.05.2015
Сообщений: 66
23.01.2016, 21:43  [ТС]
S_el, нет... Все не может быть иак просто! Обидно до жути, зато сколько нового и полезного узнала
Объясните пожалуйста, а чем в данном случаи константа выделяется?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.01.2016, 21:52
Navka, Узнать-то узнали, главное - чтобы завтра же не забыли этого всего.
0
 Аватар для Navka
1 / 1 / 0
Регистрация: 17.05.2015
Сообщений: 66
23.01.2016, 22:02  [ТС]
makfak, такое не забывается
Уж больно эта тема вымучила
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2016, 23:12
Цитата Сообщение от Navka Посмотреть сообщение
Объясните пожалуйста, а чем в данном случаи константа выделяется?
Как и почти везде - запрещает модификацию объекта.
0
 Аватар для Navka
1 / 1 / 0
Регистрация: 17.05.2015
Сообщений: 66
24.01.2016, 11:59  [ТС]
S_el, спасибо большое за помощь и за то, что возились со мной! Тему можно считать закрытой...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2016, 11:59
Помогаю со студенческими работами здесь

Ввести строку. Найти все символы, входящие в слова четной длины
Ввести строку. Найти все символы, входящие в слова четной длины.

Напечатать все символы, входящие в заданную строку, в алфавитном порядке (найти и исправить ошибки в коде)
Подскажите пожалуйста, что надо сделать для того, что бы буквы, которые уже встречаются в строке не удалялись, а выводились так же, в...

Вывести все символы строки a, не входящие в строку b
решите пожалуйста Даны строки a$ и b$. Вывести все символы строки a$, не входящие в строку b$.

В строке символов удалить все символы, входящие в другую строку
В строке символов удалить все символы, входящие в другую строку символов.

Из заданной строки удалить все символы, входящие в другую заданную строку
Из заданной строки удалить все символы, входящие в другую заданную строку. (Процедура получает строку и позицию в ней удаляемого символа и...


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

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru