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

Файлы и строки: проверить каждую строку на сходство друг с другом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверьте задачу - построить последовательность и всевозможные перестановки http://www.cyberforum.ru/cpp-beginners/thread875716.html
C++. Построить последовательность и всевозможные перестановки Здравствуйте. Помогите пожалуйста вот с такой программой... в С++ практически ничего не понимаю...только самые базовые основы... буду очень благодарен Построить последовательность заданного количества элементов, используя следующее рекуррентное соотношение ai = 3ai-1 - ai-2, i=0…n, a0=2, a1=3. Выбрать 5 первых чисел из этой...
C++ Указатели, объясните задачу Объясните 4 пункт, желательно с примером. написать функцию char* find_const(), которая 1) перемещает в digit содержимое буфера buf_lit; 2) из входного потока читает литеру за литерой, пока не встретит не цифру или конец файла; 3) если считанная литера - цифра, то она помещается в очередную позицию буфера строки. Если это не цифра, то в конец строки добавляется символ "\0", а литера остается... http://www.cyberforum.ru/cpp-beginners/thread875711.html
Считать числа в массив, отсортировать. Считать числа в список. Изменить порядок элементов C++
Добрый день, помогите пожалуйста решить такую задачу: 1)Считать числа в массив. Спросить у пользователя в каком порядке его отсортировать (по возрастанию или убыванию). Отсортировать. 2)Считать числа в список. Запросить у пользователя два числа: k, p. Изменить порядок элементов, начиная с k-го элемента, заканчивая p-ым элементом. 3)В файле находится информация о зарплате сотрудников и их...
C++ Определить есть ли в массиве строка, состоящая только из отрицательных элементов.
Определить есть ли в массиве строка, состоящая только из отрицательных элементов.
C++ Создание связанного списка с пом. класса и указателей http://www.cyberforum.ru/cpp-beginners/thread875688.html
Народ, есть задача. Я не могу решить все это. Помогите! В текстовом файле находится список студентов. Поля у студента: - ИД студента, целое число - имя - фамилия - отчетство - дата рождения
C++ Создать одномерный массив из восьми чисел, а каждое второе должно выводится на экран помогите пожалуйста! Нужно создать одномерный массив из восьми чисел, а каждое второе должно выводится на экран. подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
23.05.2013, 14:38     Файлы и строки: проверить каждую строку на сходство друг с другом
Выходит, что у тебя есть примерно такой файл?
"1234567
123
1
123456789
1234
1234
12345678"
, так?

Если да, то разбивать ничего не нужно. Это глупость. Просто если строки длинные (как вы сказали "много символов"), то самым правильным будет вместо проверки самих строк сначала проверять равенство их длин, а уж потом, если совпадут, и сами строки на равенство. Более того, если первая строка была проверена со всеми остальными, то вам не нужно больше её трогать, и трогать те, что были проверены. Можно завести доп. массив флагов для строк. Примерный код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (int i = 0; i < n - 1; ++i)
{
    if (flag[i] == 0)
    {
        for (int j = i + 1; j < n; ++ j) //j подстраивается под i. Это нужно для того, чтобы не проверять уже проверенные строки
        {
            if (flag[j] == 0 && length[i] == length[j] && str[i] == str[j]) // равенство строк не проверяется, если не выполняется второе или первое
            {
                //do something. j-ая строка - это строка-копия i-ой строки.
                flag[j] = 1; 
            }
        }
    }
}
Если же строк много, но их длина не большая, то лучше будет тогда убрать length. (небольшая = ~5-15 символов. Хотя я точно не уверен в этом)
 
Текущее время: 06:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru