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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
ampolez
Сообщений: n/a
#1

Нахождение серий символов в строке - C++

15.12.2008, 13:36. Просмотров 2809. Ответов 3
Метки нет (Все метки)

Приветствую, господа кодеры!

При написании диплома появилась некоторая проблемка:

Есть строка нулей и едениц (случайно расставлены). Нужно в ней найти количество серий этих нулей и едениц,
т.е. подряд идущих одинаковых символов.

Написал функцию, которая в качестве аргументов берет саму строку, маску символа (ноль или еденица) и длинну серии.
Функция должна возвращать количество серий масочного символа, указанной длинны в строке.
Тока что-то она плохо это делает: считает как-то через раз и ИНОГДА забывает про первые и последние символы в строке.
Есть-ли какие-нить идеи, как это можно ещё реализовать?

Написано на devcpp. Думаю все должно быть понятно.
Код:

Код
int SeriesFind(wxString sequence, wxChar mask, int ser_length) {
    int counter = 0,
        dig_counter = 0;
    wxString tmp;
    wxChar cSymb, pSymb, nSymb;

    for(int i = 0; i < sequence.Len(); i++) {
        cSymb = sequence.GetChar(i);
        nSymb = sequence.GetChar(i+1);
        pSymb = sequence.GetChar(i-1);

        if(cSymb == mask) {
            if(cSymb == pSymb) dig_counter++;
            else dig_counter = 0;
            if(dig_counter == ser_length && nSymb != mask) {
                counter++;
                dig_counter = 0;
            }
        }
    }
    return(counter);
}
Очень надеюсь на вашу помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2008, 13:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение серий символов в строке (C++):

Нахождение символов и замена их в строке - C++
Программа не работает и выдает - &quot; terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::replace:...

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

В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 - C++
и вот 2 задачка. В заданной строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3. ...

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. - C++
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама,...

Строки: нахождение символов - C++
Еще раз приветствую всех!:) ------------------------------- Помогите, пожалуйста, с заданием: Даны натуральное число n и символы s1,...

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Панда
Сообщений: n/a
15.12.2008, 14:24 #2
А если попробовать упростить код, к примеру вот так, считать будет?

Код
int SeriesFind(wxString sequence, wxChar mask, int ser_length) {
    int counte,dig_counter;
    counte=dig_counter=0;
    for(int i = 0; i < sequence.Len(); i++) {
        if(sequence.GetChar(i) == mask)
            dig_counter++;
        else 
            dig_counter = 0;
            
        if(dig_counter == ser_length) {
                counter++;
                dig_counter = 0;
        }
    }
    return(counter);
}
amp
Сообщений: n/a
15.12.2008, 20:31 #3
нее, так она не учитывает длину серии.
ampolez
Сообщений: n/a
19.12.2008, 22:22 #4
спасибо, вопрос решён!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2008, 22:22
Привет! Вот еще темы с ответами:

Найти количество символов всех строк файла и количество символов в определенной строке - C++
Здравствуйте! Я хотел бы попросить помощи в решении задачки! У меня не получается найти количество символов всех строчек и количество...

нахождение палиндрома в строке - C++
Народ помогите плз!!! Строка состоит из слов. Найти все самые длинные слова-палиндромы и занести их в новую строку. Слова в новой...

Строки: нахождение символов и замена слов - C++
Здравствуйте, дорогие форумчане. --------------------------------------- Помогите, пожалуйста, с решением задачи. Дана строка...

Строки: нахождение символов и замена слов - C++
Здравствуйте, дорогие форумчане. ----------------------------------- Помогите, пожалуйста, решить задачу. Вот задание: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.12.2008, 22:22
Ответ Создать тему
Опции темы

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