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

Поиск по фамилии - C++

Восстановить пароль Регистрация
 
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
01.06.2012, 19:56     Поиск по фамилии #1
Здравтвуйте. У меня программа на visual c++ mfc
значит там есть поиск по фамилиям. дело в том что он ищет только по первой букве
скажите вот сравнивает первый символ и выводит результаты фамилий с такой первой буквой.
А как сделать так чтобы дальше введя второй символ отсеивались ненужные рез-ты и оставались только у которых совпадают 2 символа. и так до последнего?

сейчас код выглядит так: это поиск по первой букве

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
25
26
27
28
29
30
31
32
33
34
if (f1=fopen("Student.dat","r")) 
     { 
      while (fread(&st,sizeof(st),1,f1)) 
      { 
          fam=m_Pole; 
          if (fam[0]==st.fam[0]) found++; 
      }; 
      fclose(f1); 
     }; 
     if (found!=0) 
     { 
         m_StudList.ResetContent(); 
         j=0; 
         if (f1=fopen("Student.dat","r")) 
         { 
          while (fread(&st,sizeof(st),1,f1)) 
          { 
           //if (fam==st.fam) 
              if (fam[0]==st.fam[0]) 
 
           { 
               nazv=""; 
                nazv=nazv+st.fam+' ';  
               nazv=nazv+st.imya[0]+". "; 
               nazv=nazv+st.otch[0]+'.'; 
                 m_StudList.AddString(nazv);  
           }; 
           j++; 
          }; 
          fclose(f1); 
         }; 
     } 
     else 
     {
Добавлено через 9 минут
мне кажется надо зациклить типо того
C
1
2
3
(int i=0;i<длина фамилии ;i++) 
           
             if (fam[i]==st.fam[i]) found++;
поправьте пжл

Добавлено через 17 минут
я думаю так
но где то ошибка....


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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 if (f1=fopen("Student.dat","r"))
     {
      while (fread(&st,sizeof(st),1,f1))
      {
         // fam=m_Pole;
          //if (fam[0]==st.fam[0]) found++;
 
          for (int i=0;i<strlen(st.fam) ;i++) 
           
             if (fam[i]==st.fam[i]) found++;
 
 
      };
      fclose(f1);
     };
     if (found!=0)
     {
         m_StudList.ResetContent();
         j=0;
         if (f1=fopen("Student.dat","r"))
         {
          while (fread(&st,sizeof(st),1,f1))
          {
           //if (fam==st.fam)
            //  if (fam[0]==st.fam[0])
 
 
 
             for (int i=0;i<strlen(st.fam) ;i++) 
           
            if (fam[i]==st.fam[i]) found++;
 
 
           {
               nazv="";
               nazv=nazv+st.fam+' '; 
               nazv=nazv+st.imya[0]+". ";
               nazv=nazv+st.otch[0]+'.';
               m_StudList.AddString(nazv); 
           };
           j++;
          };
          fclose(f1);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 19:56     Поиск по фамилии
Посмотрите здесь:

сортировка по фамилии C++
Поиск введеных имени и фамилии в файле C++
C++ Сортировка по фамилии
C++ Фамилии
Поиск данных в файле по Фамилии C++
C++ Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии
Поиск в текстовом формате первой буквы вашей фамилии C++
Поиск студента по имени, фамилии и iq C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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