Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdlib.h"
- #include "stdio.h"
- #include "string.h"
- typedef struct {
- int day;
- char month[4];
- int year;
- }
- DATE;
- typedef struct {
- const char* pFirstName;
- const char* pLastName;
- const char* pNationality;
- DATE birthDate;
- }
- STUDENT;
- int exam(STUDENT *pStudents, int nStudents, const char *pPattern);
- int main() {
- STUDENT students[] = { { "John", "Smith", "Britain",{ 1, "Feb", 2000 } },{ "Mary", "Weaver", "USA",{ 3, "Jan", 1999 } } };
- const char *oneStudent = "Mary, Weaver born 3 January 1999 from USA";
- printf("%s\n", oneStudent);
- int result = exam(students, 2, oneStudent);
- printf("%d\n", result);
- printf("Press ENTER key to Continue\n");
- getchar();
- return 0;
- }
- // "<last-name>, <first-name> born <day> <month-in-english> <year> from <country>"
- int exam(STUDENT *pStudents, int nStudents, const char *pPattern) {
- int result = 0;
- int sizeOfString;
- char *holderString = (char*)malloc(strlen(pPattern) + 1);
- strcpy_s(holderString, strlen(pPattern) + 1, pPattern);
- sizeOfString = (int)(strchr(holderString, ',') - holderString);
- char* firstName = (char*)malloc(sizeOfString + 1);//!!!!!!!!
- firstName[sizeOfString] = '\0';
- strncpy_s(firstName, sizeOfString + 2, holderString, sizeOfString);
- holderString = strchr(holderString, ',') + 2;
- sizeOfString = (int)(strchr(holderString, ' ') - holderString);
- char* lastName = (char*)malloc(sizeOfString + 1); //!!!!!!!!!!!
- lastName[sizeOfString] = '\0';
- strncpy_s(lastName, sizeOfString + 2, holderString, sizeOfString);
- holderString = strchr(holderString, ' ') + 6;
- int dayOfMonth = atoi(holderString); //!!!!!!!!
- holderString = strchr(holderString, ' ') + 1;
- sizeOfString = (int)(strchr(holderString, ' ') - holderString);
- char* month = (char*)malloc(sizeOfString + 1); //!!!!!!!!!!!
- month[sizeOfString] = '\0';
- strncpy_s(month, sizeOfString + 2, holderString, sizeOfString);
- holderString = strchr(holderString, ' ') + 1;
- int year = atoi(holderString); //!!!!!!!!
- holderString = strchr(holderString, ' ') + 6;
- printf("%s\n", firstName);
- printf("%s\n", lastName);
- printf("%i\n", dayOfMonth);
- printf("%s\n", month);
- printf("%i\n", year);
- printf("%s\n", holderString);
- if (pStudents == 0 || nStudents == 0) {
- return 0;
- }
- for (int i = 0; i < nStudents; i++) {
- if (strcmp(pStudents[i].pLastName, lastName) == 0 && strcmp(pStudents[i].pFirstName, firstName) == 0 && pStudents[i].birthDate.day == 1 && strncmp(month, pStudents[i].birthDate.month, dayOfMonth) == 0 && pStudents[i].birthDate.year == year && strcmp(pStudents[i].pNationality, holderString) == 0) {
- result = 1;
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement