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

если в строке встречена одинаковая последовательность символов, заменить их кодом 255 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ про раздельную компиляцию и заголовочные файлы http://www.cyberforum.ru/cpp-beginners/thread19967.html
Люди, кто-нибудь может просто и понятно объяснить мне про раздельную компиляцию и заголовочные файлы, плз!!!!
C++ Вычисление суммы бесконечного ряда с точностью эпсилон Работает но выдает ошибку. если возможно подскажите. условие запрограммировать вычисление суммы бесконечного ряда с точностью эпсилон.эпсилон задается с клавиатуры.S=(n=1)^∞∑(2n-1)/2^n #include "stdafx.h" #include <iostream> #include <iomanip> #include <cmath> using namespace std; int _tmain(int argc, _TCHAR* argv) { http://www.cyberforum.ru/cpp-beginners/thread19964.html
чтение памяти C++
Помогите написать прогу для чтения значений памяти по указанному адресу.:help:
C++ Прочесть текст из файла и вывести предложение, содержащее максимальное количество знаков пунктуации
Здравствуйте, уважаемый программисты!!! У меня проблема в создании консольной задачи на си++ Надо создать программу, которая считывает текст из файла и выводит на экран предложение, содержащее максимальное количество знаков пунктуации... У меня получилось только сделать вывод текста на экран из файла: #include <fstream> #include <iostream> using namespace std; int main()
C++ Дан двухмерный массив размерностью NхМ, превратить его в одномерный. http://www.cyberforum.ru/cpp-beginners/thread19947.html
Дан двухмерный массив размерностью NхМ, превратить его в одномерный. Зарание спасибо!!!;););)
C++ Сгенерировать N2 случайных чисел... Помогиет, кто сможет!:help: Сгенерировать N2 случайных чисел. Выделить в каждом из чисел дробну часть. Найти суммы из первых к цифр каждой дробной части чисел.Сформировать из их массив (таблицу) из N строк, в каждом из которых по N столбиков. Найти минимальное и максимальное числа в таблицы, а также сумму чисел n-го столбика. На экран вывести в виде строки случайные числа,... подробнее

Показать сообщение отдельно
ЮрийFM
0 / 0 / 0
Регистрация: 26.12.2008
Сообщений: 9
28.12.2008, 20:11     если в строке встречена одинаковая последовательность символов, заменить их кодом 255
Задача такова:
обработать массив строк (длина каждой не более 100 символов). если в строке встречена одинаковая последовательность символов, заменить их кодом 255, за которым следует код этого символа и количесво одинаковых символов. Желательно без стандартых функций со строками.


Может кто осилит..

Вопрос таков ...это код работает без привязок... в старом компиляторе к примеру Borland_C не раюботает... может кто поможет отформатировать код?? очень надобно

Код
void EncodeSingleChar(std::string & str, char c, char count)
{
    if (count != 0)
    {
        str.push_back(-1);
        str.push_back(count + 1);
    }

    str.push_back(c);
}

void EncodeString(std::string & str)
{
    const long cMaxStringSize = 100;
    if (str.size() > cMaxStringSize)
    {
        std::cerr << "String too long: " << str << std::endl;
        throw std::runtime_error(std::string("String too long: ") + str);
    }

    std::string out_str;
    out_str.reserve(str.size());

    char last_char = 0;
    char charsCount = 0;

    std::string::const_iterator it = str.begin();
    if (it != str.end())
    {
        last_char = *it;
        ++it;
    }

    for (; it != str.end(); ++it)
    {
        if (*it == last_char)
        {
            ++charsCount;
        }
        else
        {
            EncodeSingleChar(out_str, last_char, charsCount);
            charsCount = 0;
        }

        last_char = *it;
    }

    if (last_char)
        EncodeSingleChar(out_str, last_char, charsCount);

    str = out_str;
}

void Test()
{
    std::ifstream in_f("test_in.txt");
    std::ofstream out_f("test_out.txt");

    std::string str;
    while (in_f.good() && std::getline(in_f, str))
    {
        EncodeString(str);
        out_f << str << std::endl;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru