#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;
}
[c++]проверка найденного-хэш
помогите пожалуйста. эта программа ищет в текстовом файле введенные с клавы фамилию имя и отчество(одновременно все 3) и выводит их количество...не могу сделать проверку...то есть если ввести Ivanvo он все равно найдет Ivanov!! так как хэш побуквенный.Как сделать проверку уже найденных Фамилии имя отчества?спасибо