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

Как найти заданный элемент (типа char) в массиве структур? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строка в 10000 символов http://www.cyberforum.ru/cpp-beginners/thread1063154.html
Возможно ли создать такую строку? Если возможно, то как?
C++ в одномерном массиве, состоящем из n вещественных элементов, вычислить: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму и количество элементов массива, расположенных между первым и последним отрица-тельными элементами. 2) упорядочить элементы массива по возрастанию методом простого выбора. Сравнить с сорти-ровкой методом обменов («пузырька»). 3) Сжать массив, удалив из него все элементы, модуль которых не превышает 1.... http://www.cyberforum.ru/cpp-beginners/thread1063131.html
C++ Функция, возвращающая слово из строки
Дана строка(все слова разделены запятыми): word1,word2,word3,word4 Нужно написать функцию, которая будет возвращать определенное слово. Вот что получилось: char* slovo(char* str, int count) { int k=1; char *strs="Error"; char * pch = strtok (str,","); while (pch != NULL)
C++ Перевод из Pascal в C++
Здравствуйте! Помогите,пожалуйста,перевести программу из паскаля в С++ uses crt; var A, B, x, y, h, n, O: real; s: string; cod: integer; const z = 0.0001; begin
C++ Вывести каждое слово из файла на экран http://www.cyberforum.ru/cpp-beginners/thread1063103.html
Имеется файл со следующим содержимым: 1 Иван Петров 2 Оля Семенова 3 Илья Петушко 4 Наталья Близер ........ Мне нужно считать эти данные и вывести на экран, но так, чтобы не целой строкой, а по отдельности каждое слово и номер. (считали номер, далее считываем имя, потом фамилию, и так же поочередно выводим). Помогите, пожалуйста!!! желательно использовать fstream (fstream.h),...
C++ Несистематическая ошибка на этапе компиляции #pragma hdrstop #pragma argsused #include <iostream.h> void main() { double a; int index,i_max,i_min; double max,min,sum,sum2,x; sum=sum2=0; //------------------------------------- подробнее

Показать сообщение отдельно
Ilo
 Аватар для Ilo
3 / 3 / 0
Регистрация: 18.12.2013
Сообщений: 29
04.01.2014, 21:15     Как найти заданный элемент (типа char) в массиве структур?
Есть массив структур в виде адресной книги с 10 записями с уже введёнными данными (фамилия, имя, улица, номер дома и номер квартиры).
Как найти заданный элемент (типа char) в массиве структур по фамилии (последняя операция Find)?
Операции сохранения в файл, чтения из файла и сортировки массива структур я сумел написать, а с последней операцией (поиска по фамилии в массиве структур) у меня проблема.
Код прилагается.

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// control.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string.h>
 
using namespace std;
const int NotUsed = system( "color F0" );
 
struct student
{
    char lastname[30];
    char firstname[30];
    char street[30];
             int house;
    int apartment;
}mas;
 
int _tmain(int argc, _TCHAR* argv[])
{
  int option = 0;
  while(option != -1) {
  cout<<endl<<"1 - Make 2 - Print 3 - Save 4 - Load 5 - Sort 6 - Find 0 - Exit"<<endl;
  cout<<"Input Num ";
  cin >> option;
  switch(option) {
           case 1:
   cout <<endl<<"Make"<<endl;
   int i;
   struct student mas[10];
   strcpy_s(mas[0].lastname, "Anisimov");
   strcpy_s(mas[0].firstname, "Anton");
   strcpy_s(mas[0].street, "Budanuva"); 
   mas[0].house=10;
   mas[0].apartment=3;
   strcpy_s(mas[1].lastname, "Bunin");
   strcpy_s(mas[1].firstname, "Pavel");
   strcpy_s(mas[1].street, "Oboronu"); 
   mas[1].house=20;
   mas[1].apartment=5;
   strcpy_s(mas[2].lastname, "Cuprin");
   strcpy_s(mas[2].firstname, "Vasiliy");
   strcpy_s(mas[2].street, "Lesnaay"); 
   mas[2].house=15;
   mas[2].apartment=8;
   strcpy_s(mas[3].lastname, "Dostoevskiy");
   strcpy_s(mas[3].firstname, "Igor");
   strcpy_s(mas[3].street, "Globova"); 
   mas[3].house=1;
   mas[3].apartment=15;
   strcpy_s(mas[4].lastname, "Esenin");
   strcpy_s(mas[4].firstname, "Evgeniy");
   strcpy_s(mas[4].street, "Respublikanskay"); 
   mas[4].house=56;
   mas[4].apartment=5;
   strcpy_s(mas[5].lastname, "Bach");
   strcpy_s(mas[5].firstname, "Anton");
   strcpy_s(mas[5].street, "Chmelnaay"); 
   mas[5].house=11;
   mas[5].apartment=88;
   strcpy_s(mas[6].lastname, "Pushkin");
   strcpy_s(mas[6].firstname, "Aleksandr");
   strcpy_s(mas[6].street, "Rechnaay"); 
   mas[6].house=132;
   mas[6].apartment=33;
   strcpy_s(mas[7].lastname, "Nosov");
   strcpy_s(mas[7].firstname, "Nikolay");
   strcpy_s(mas[7].street, "Treugolnaay"); 
   mas[7].house=16;
   mas[7].apartment=81;
   strcpy_s(mas[8].lastname, "Ostrovskiy");
   strcpy_s(mas[8].firstname, "Igor");
   strcpy_s(mas[8].street, "Komarskaay"); 
   mas[8].house=19;
   mas[8].apartment=8;
   strcpy_s(mas[9].lastname, "Asprin");
   strcpy_s(mas[9].firstname, "Robert");
   strcpy_s(mas[9].street, "Snezhnaay"); 
   mas[9].house=6;
   mas[9].apartment=24;
   for (i=0;i<10;i++)
   cout<<""<<mas[i].lastname<<" "<<mas[i].firstname<<" st. "<<mas[i].street<<" "<<mas[i].house<<", ap."<<mas[i].apartment<<endl;      
           break;
           case 2:
   cout <<endl<<"Print"<<endl;
   for(i=0;i<10;i++)
   cout<<""<<mas[i].lastname<<" "<<mas[i].firstname<<" st. "<<mas[i].street<<" "<<mas[i].house<<", ap."<<mas[i].apartment<<endl;
           break;
           case 3:
   cout <<endl<<"Save"<<endl;
   {
    ofstream outfile;
    outfile.open("outfile.txt");
    for (i=0;i<10;++i)
    outfile << mas[i].lastname << " " << mas[i].firstname << " st. " << mas[i].street << " " << mas[i].house << ", ap. " << mas[i].apartment <<endl;
    outfile.close();
   }
           break;
           case 4:
   cout <<endl<<"Load"<<endl;
   {char buff[100]; 
   ifstream fin("outfile.txt"); 
   for (i=0;i<10;i++)
   {
    fin.getline(buff, 100);
    cout << buff<<endl;
   }
   fin.close();
   }
           break;
           case 5:
   cout <<endl<<"Sort"<<endl;
   int j;
   char mas2[30];
   char mas3[30];
   char mas4[30];
   int mas5;
   int mas6;
   for(i=0;i<10-1;i++)
        for(j=i+1;j<10;j++)
            if(strcmp(mas[i].lastname,mas[j].lastname)>0)
            {strcpy_s(mas2,mas[i].lastname);
     strcpy_s(mas3,mas[i].firstname);
     strcpy_s(mas4,mas[i].street);
     swap(mas[i].house,mas5);
     swap(mas[i].apartment,mas6);
    
     strcpy_s(mas[i].lastname,mas[j].lastname);
     strcpy_s(mas[i].firstname,mas[j].firstname);
     strcpy_s(mas[i].street,mas[j].street);
     swap(mas[i].house,mas[j].house);
     swap(mas[i].apartment,mas[j].apartment);
 
              strcpy_s(mas[j].lastname,mas2);
     strcpy_s(mas[j].firstname,mas3);
     strcpy_s(mas[j].street,mas4);
     swap(mas[j].house,mas5);
     swap(mas[j].apartment,mas6);
             }
    for(i=0;i<10;i++)
    cout<<mas[i].lastname<<" "<<mas[i].firstname<<" st. "<<mas[i].street<<" "<<mas[i].house<<", ap."<<mas[i].apartment<<endl;
           break;
           case 6:
   cout <<endl<<"Find"<<endl;
 
           break;
           case 0: return 0;
           default:
  cout <<endl<<"Error"<<endl;
                             }
                          }
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru