Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct student
- {
- char *last_name;
- char *name;
- int height;
- }student_t;
- student_t *journal_create(student_t* journal, int max_size)
- {
- journal = malloc(sizeof(student_t) * max_size);
- if (!journal)
- return NULL;
- return journal;
- }
- void j_delete(student_t* journal, int size)
- {
- for (int i = 0; i < size; i++)
- {
- free((journal + i) -> name);
- free((journal + i) -> last_name);
- }
- free(journal);
- return;
- }
- student_t *journal_input(student_t* journal, int *size, int max_size)
- {
- char tmp[256];
- if ((scanf("%s", tmp) != 1))
- {
- j_delete(journal, *size);
- return NULL;
- }
- (journal + *size) -> last_name = malloc(strlen(tmp) + 1);
- strcpy((journal + *size) -> last_name, tmp);
- if ((scanf("%s", tmp) != 1))
- {
- j_delete(journal, *size);
- return NULL;
- }
- (journal + *size) -> name = malloc(strlen(tmp) + 1);
- strcpy((journal + *size) -> name, tmp);
- int height;
- if ((scanf("%i", &height) != 1))
- {
- j_delete(journal, *size);
- return NULL;
- }
- (journal + *size) -> height = height;
- (*size)++;
- return journal;
- }
- void journal_output(student_t *journal, int size)
- {
- for(int i = 0; i < size; i++)
- {
- printf("data about student β%d is ", i);
- printf("%s %s %d", (journal + i) -> last_name, (journal + i) -> name, (journal + i) -> height);
- printf("\n");
- }
- }
- void journal_double(student_t *journal, int size)
- {
- char *tmp = NULL;
- for(int i = 0; i < size; i++)
- {
- tmp = malloc(strlen((journal + i) -> last_name) * 2 + 1);
- snprintf(tmp, strlen((journal + i) -> last_name) * 2 + 1, "%s%s", (journal + i) -> last_name, (journal + i) -> last_name);
- char* ln_tmp = NULL;
- ln_tmp = realloc((journal + i) -> last_name, (strlen(tmp) + 1) * sizeof(char));
- if(!ln_tmp)
- j_delete(journal, size);
- (journal + i) -> last_name = ln_tmp;
- strcpy((journal + i) -> last_name, tmp);
- free(tmp);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement