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

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

21.01.2016, 21:28. Показов 3158. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru