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

Строки - C++

Восстановить пароль Регистрация
 
Naatikin
4 / 4 / 0
Регистрация: 01.11.2010
Сообщений: 97
02.06.2012, 13:25     Строки #1
Задача: есть набор символов. он не подходит не под одну строку, нужно выяснить на какую строку больше похож массив.
пример:
htaml - неправильная строка
html - правльная, как лучше отличать от остальных?
есть какие-нибудь алгоритмы? поиск по форуму ничего дельного не дал
спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 13:25     Строки
Посмотрите здесь:

Добавить в конец первой строки, последние n2-n1 слов второй строки C++
C++ Скопировать второе слово каждой строки в начало следующей строки
Из символов введенной строки сформировать две строки - из цифр и букв C++
c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. C++
C++ Найти номер строки матрицы, наиболее отдаленный от первой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ruslawik
9 / 33 / 1
Регистрация: 25.05.2012
Сообщений: 113
02.06.2012, 13:30     Строки #2
Тебе просто нужно узнать есть ли все символы из строки B (html) в строке А (htaml) в порядке расположенном как и в B?

Добавлено через 1 минуту
Или там несколько строк
Naatikin
4 / 4 / 0
Регистрация: 01.11.2010
Сообщений: 97
02.06.2012, 13:41  [ТС]     Строки #3
сравнение идёт с несколькими строками
но идею я понял
ruslawik
9 / 33 / 1
Регистрация: 25.05.2012
Сообщений: 113
02.06.2012, 13:42     Строки #4
Ну попробуй реализовать теперь. Впринципе нетрудный алгоритм будет. От +1 не откажусь)
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
02.06.2012, 21:55     Строки #5
Алгоритм поиска под-строки по релевантности (подобию) в заданной строке:
В качестве результата выводит таблицу частот релевантности для каждой из под-строк
строки str1, которая посимвольно сравнивается с заданной строкой поиска str2.
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    static char str1[256] = "Hypertext documents have .htaml extension\0";
    static char str2[256] = "html";
 
    for (int q = 0; str1[q] != '\0'; q++)
    {
        double relv = 0.0;
        for (int i = 0; str2[i] != '\0'; i++)
        {
            printf("%c",str1[i+q]);
            if (str1[i+q] == str2[i]) 
                relv+=(double)1 / strlen(str2);
        }
 
        printf("\tfreq = %4.2f\n",relv);
    }
 
    _getch();
}
http://liveworkspace.org/code/678e27...e645a1813d481e
Тестируйте. Дайте ответ.
Миниатюры
Строки  
Naatikin
4 / 4 / 0
Регистрация: 01.11.2010
Сообщений: 97
03.06.2012, 15:55  [ТС]     Строки #6
zitxbit, похож на алгоритм нечёткого сравнения.
спасибо подошло
Yandex
Объявления
03.06.2012, 15:55     Строки
Ответ Создать тему
Опции темы

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