Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[c++]проверка найденного-хэш

28K
24 мая 2008 года
vorovaika
21 / / 07.12.2007
помогите пожалуйста. эта программа ищет в текстовом файле введенные с клавы фамилию имя и отчество(одновременно все 3) и выводит их количество...не могу сделать проверку...то есть если ввести Ivanvo он все равно найдет Ivanov!! так как хэш побуквенный.Как сделать проверку уже найденных Фамилии имя отчества?спасибо

Код:
#define _CRT_SECURE_NO_DEPRECATE
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
#include <iostream>
using namespace std;
int main()
{    int nom=1,i=0,j,h=0,p,k=0,a,hash,n=0,kol=0,arr[1000];
    char s[50],m[30],mass[1000],sur[30],nam[30],pat[30],array[100] = " ";
FILE *F;
if((F=fopen("hash.txt","r"))==0)                    
{  printf("Fail ne otkrit!!!");
   return 0;}
printf("DANNIE IZ FAILA:\n");    
while(!feof(F))                            
    {fgets(s,50,F);
SetConsoleTextAttribute(hStdout, 10);
    printf("%2d) %s",nom,s);
    p=0;
    while (s)
    {mass=(int)s;
    i++;
    p++;}
    nom++;}
//hash faila
for (i=0;mass >0;i++)
{if (mass!=10)
{if(mass!=32)
{arr[h]=k+mass;
k=arr[h];}}
else
    {h++;
    k=0;}}

printf ("\nHASH TABLITSA:\n");
    for (h=0; h < nom-1; h++)
    printf ("%2d) %i \n",h+1,arr[h]);
    printf("\n");
    printf ("Vvedite Familiuy, Imya, Otchestvo cherez probel...\n");
    scanf ("%s %s %s", sur, nam, pat);
    //hash
    for (j=0; j < strlen(sur); j++)
    {hash=n+(int)sur[j];
    n=hash;}
    for (j=0; j < strlen(nam); j++)
    {hash=n+(int)nam[j];
    n=hash;}
    for (j=0; j < strlen(pat); j++)
    {hash=n+(int)pat[j];
    n=hash;}
    //poisk
    for(h=0,a=0; arr[h]>0; h++)
    {if (hash == arr[h])
        {m[a]=h;
        a++;
        kol++;}}

    if(kol!=0)
    {
        {nom++;    
printf("\nNAIDENO!!!\n");
printf("\nKolichestvo naidennix - %d.\n",kol);
printf("Ix hash - %i\n", hash);}
    }
 else if (kol==0)
    {printf("\nNe naideno v dannom faile\n");}
    printf("Press any key to exit...\n");  
    _getch();
    return 0;

}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог