· 8 years ago · May 08, 2017, 05:12 PM
1#include "stdafx.h"
2#include <stdlib.h>
3#include <stdio.h>
4#include <time.h>
5#include <iostream>
6
7struct persona
8{
9 char name[100];
10 char surname[100];
11 char dateofbirth[9];
12 char **addwords = new char*[1000];
13};
14
15struct email
16{
17 char **arrptr = new char*[7];
18 char **addprovs = new char*[1000];
19};
20
21persona person();
22email domain();
23void combine(persona *, email *);
24
25persona person()
26{
27 persona pers;
28 char *addword; //2d array for additional words
29 char flag;
30
31
32 printf("Enter name of your subject of interest\n");
33 std::cin >> pers.name;
34 printf("Enter surname of your subject of interest\n");
35 std::cin >> pers.surname;
36 printf("Enter date of birth of your subject of interest (8 digits in format DDMMYYYY\n");
37 std::cin >> pers.dateofbirth;
38 printf("Add additional words? Y/N: ");
39 std::cin >> flag;
40
41 printf("\n---------------------------\n");
42
43
44 if (flag == 'Y' || flag == 'y')
45 {
46
47 for (int i = 0; i < 1000; i++)
48 {
49 addword = new char[1000]; //init 2d array for additional words
50 pers.addwords[i] = addword;
51 }
52
53
54 printf("\nPress Enter after every additional word");
55 printf("\nTo stop enter '%%'\n");
56
57 int i = 0;
58 while (1)
59 {
60 std::cin >> (pers.addwords[i]);
61 if (!strcmp((pers.addwords[i]), "%")) //if % appears, delete all next empty cells and break cycle
62 {
63 for (int k = i; k < 1000; k++)
64 delete pers.addwords[k];
65 break;
66 }
67 i++;
68 }
69 }
70 else
71 delete[] pers.addwords;
72
73 printf("\n---------------------------\n");
74
75
76 return pers;
77}
78email domain()
79{
80 email email;
81 char arr[7],f;
82 char yandex[]= "@yandex.ru";
83 char *mail[] = { "@mail.ru", "@list.ru", "@bk.ru", "@inbox.ru" };
84 char gmail[] = "@gmail.com";
85 char yahoo[] = "@yahoo.com";
86 char *msn[] = { "@hotmail.com", "@msn.com" ,"@outlook.com" };
87 char rambler[] = "@rambler.ru";
88 char inbox[] = "@inbox.com";
89
90 email.arrptr[0] = yandex;
91 email.arrptr[1] = *mail; //every string ends with \0
92 email.arrptr[2] = gmail; //WTF going with values
93 email.arrptr[3] = yahoo;
94 email.arrptr[4] = *msn;
95 email.arrptr[5] = rambler;
96 email.arrptr[6] = inbox;
97
98 for (int i = 0; i < 7; i++)
99 {
100 arr[i] = i;
101 }
102
103
104 printf("\nChoose email service providers you want in your email list\n");
105 printf("\n0-yandex\n1-mail\n2-gmail\n3-yahoo\n4-msn\n5-rambler\n6-inbox");
106
107 for (int i = 0; i < 7; i++)
108 {
109 printf("\nDo you need %i ? (Y/N)", i);
110 std::cin >> f;
111 f == 'Y' || f == 'y' ? 0 : arr[i] = -1;
112 }
113
114 for (int i = 0; i < 7; i++)
115 arr[i] == -1 ? email.arrptr[i] = NULL : 0; //if != Null, then do something
116
117
118 char *addprov; //2d array for additional providers
119 char flag;
120 printf("\nAdd additional email providers? Y/N: ");
121
122
123 std::cin >> flag;
124 if (flag == 'Y' || flag == 'y')
125 {
126 for (int i = 0; i < 1000; i++)
127 {
128 addprov = new char[1000]; //init 2d array for additional words
129 email.addprovs[i] = addprov;
130 }
131
132 printf("\nPress Enter after every additional email provider");
133 printf("\nTo stop enter '%%'\n");
134 printf("\nAdd providers with @\n");
135 int i = 0;
136 while (1)
137 {
138 std::cin >> (email.addprovs[i]);
139 if (!strcmp((email.addprovs[i]), "%")) //if % appears, delete all next empty cells and break cycle
140 {
141 for (int k = i; k < 1000; k++)
142 delete email.addprovs[k]; //mb must be k-1
143 break;
144 }
145 i++;
146 }
147 }
148 else
149 delete[] email.addprovs;
150
151
152 return email;
153}
154
155void combine(persona pers, email emal)
156{
157 FILE *ema = fopen("email.txt","w");
158
159
160 //name+surname
161
162 char temp[1] = "", local[1] = "",*save;
163 strcat(local,pers.name);
164 strcat(local, pers.surname);
165 for (int i = 0; i < sizeof(emal.arrptr) + sizeof(emal.addprovs); i ++) //not this border
166 {
167 save = local;
168 strcat(save,emal.arrptr[i]);
169 fprintf(ema, "%s\n", save);
170 }
171
172}
173
174
175
176
177
178
179int main()
180{
181
182 persona pers = person();
183 email ema = domain();
184 combine(pers, ema);
185
186 system("pause");
187 return 0;
188}