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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
ampolez
Сообщений: n/a
15.12.2008, 13:36     Нахождение серий символов в строке #1
Приветствую, господа кодеры!

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

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

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

Написано на 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++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Строки: нахождение символов C++
C++ Строки: нахождение символов и замена слов
C++ Строки: нахождение символов и замена слов
C++ Строки: нахождение символов и замена слов
В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 C++
Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке C++
C++ Нахождение количества слов в строке
Нахождение строки в другой строке C++
Нахождение слова наибольшей длины в строке C++
C++ В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Панда
Сообщений: 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
спасибо, вопрос решён!
Yandex
Объявления
19.12.2008, 22:22     Нахождение серий символов в строке
Ответ Создать тему
Опции темы

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