С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
1

Как с помощью цикла проверить все вхождения символов?

26.11.2013, 21:16. Просмотров 459. Ответов 11
Метки нет (Все метки)

Как с помощью цикла проверить все вхождения символов и если какой-то из символов входит более одного раза (изначально мы не знаем какой символ повторяется, поэтому нужно проверить все символы на повторяемость) запомнить эти позиции, а потом части строки между вхождениями этого символа скопировать в новые строки?

Вот начало, дальше не знаю, как продолжить
C++
1
2
3
4
char str [50] = "12cb6yjukca8s7rcmnxc";
int nomer1, nomer2;
for (int i = 0; i < strlen (str); i++)
    if ( str[i] == str[i+1])
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 21:16
Ответы с готовыми решениями:

Как проверить в строке все вхождения символа?
Как проверить в строке все вхождения символа и запомнить кусок строки между...

Написать программу, которая удаляет из данного набора символов все вхождения символов S и s
Написать программу, которая получает от пользователя набор символов, исключая...

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

Удалить все вхождения символов из строки
как удалить вхождение всех точек в строку, стандартными средствами, без цикла...

Строка символов. Все вхождения ‘abc’ заменить на ‘def’
Дана строка символов. Необходимо все вхождения ‘abc’ заменить на ‘def’

11
newbie666
Заблокирован
26.11.2013, 21:18 2
Цитата Сообщение от kobrjatina Посмотреть сообщение
Как
Легко!
используй std::map
0
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 21:23  [ТС] 3
Цитата Сообщение от newbie666 Посмотреть сообщение
используй std::map
мне нужно обычным циклом без этой библиотеки
0
newbie666
Заблокирован
26.11.2013, 21:28 4
Цитата Сообщение от kobrjatina Посмотреть сообщение
мне нужно обычным циклом без этой библиотеки
а это не библиотека, это map а цикли тебе конечно же тоже понадобятся
0
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 21:31  [ТС] 5
Цитата Сообщение от newbie666 Посмотреть сообщение
а это не библиотека, это map а цикли тебе конечно же тоже понадобятся
а без map никак нельзя? мы этого еще не учили
0
newbie666
Заблокирован
26.11.2013, 21:35 6
Цитата Сообщение от kobrjatina Посмотреть сообщение
а без map никак нельзя? мы этого еще не учили
конечно можно, но меня воротит от древнего сишного кода, так что жди, пока такие же новички тебе напишут программу
0
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 21:38  [ТС] 7
Цитата Сообщение от newbie666 Посмотреть сообщение
конечно можно, но меня воротит от древнего сишного кода, так что жди, пока такие же новички тебе напишут программу
а с помощью map можешь написать?
0
newbie666
Заблокирован
26.11.2013, 21:41 8
Тогда точнее сформулируй задачу.
Цитата Сообщение от kobrjatina Посмотреть сообщение
если какой-то из символов входит более одного раза
А если несколько символов входят более однго раза?

Цитата Сообщение от kobrjatina Посмотреть сообщение
а потом части строки между вхождениями этого символа скопировать в новые строки?
Входит символ 3 раза в строку, сколько будет новых строк - кусочков, которые тебе надо скопировать?
0
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 21:46  [ТС] 9
Цитата Сообщение от newbie666 Посмотреть сообщение
Тогда точнее сформулируй задачу.

А если несколько символов входят более однго раза?

если несколько, то взять любой из повторяющихся символов и запомнить его позиции

Входит символ 3 раза в строку, сколько будет новых строк - кусочков, которые тебе надо скопировать?
если входит три раза, то будет 2 новые строки, между 1 и 2 вхождением и между 2 и 3
0
newbie666
Заблокирован
26.11.2013, 21:48 10
Цитата Сообщение от newbie666 Посмотреть сообщение
А если несколько символов входят более однго раза?
а это?
0
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 21:50  [ТС] 11
Цитата Сообщение от newbie666 Посмотреть сообщение
а это?
если несколько, то взять любой из повторяющихся символов и запомнить его позиции
0
newbie666
Заблокирован
26.11.2013, 22:32 12
ладно ща никадю

Добавлено через 31 минуту
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 <tchar.h>
#include <iostream>
#include <sstream>
#include <string>
#include <map>
#include <vector>
 
int _tmain(int argc, _TCHAR* argv[])
{
    char str [50] = "12cb6yjukca8s7rcmnxc";
 
    std::string source = str;
    std::map<char, std::vector<int>> scan;
    for(int i=0; i<source.size(); i++)              
            scan[source[i]].push_back(i);   
 
    std::vector<std::pair<char, std::string>> result;
    for(auto it = scan.begin(); it != scan.end(); it++)     
        if(it->second.size() > 1)       
            for(int i = 0; i < it->second.size() - 1; i++)              
                result.push_back(std::make_pair(it->first, source.substr(it->second[i]+1, it->second[i+1]-it->second[i]-1)));       
 
    for(auto it = result.begin(); it != result.end(); it++)
        std::cout << "Char '" << it->first << "' substring result: " << it->second << std::endl;
    
    system("pause");
        
    return 0;
}
Плюс мне ставится под ником
1
26.11.2013, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 22:32

АТД список. Выделить скобками все двойные вхождения символов
Здравствуйте. Суть задачи такова. Нужно выделить круглыми скобками все...

Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ –
Заменить в последовательности символов после первого вхождения знака ‘+’ все...

Стек. Выведите все вхождения символов указанного набора в текст в обратном порядке
Дан текст, состоящий из заглавных и строчных английских букв, символов ! ;...


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

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

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