Step by step

My diary

...

Search

breakinformation. Powered by Blogger.

Step by step

2018년 11월 28일 수요일

string compare


12345678910111213141516171819202122232425#include <stdio.h>#include <stdlib.h> int String_Compare (const char* _First_String_, const char* _Second_String_); int main (void) {        char* _String[2] = { _String[0] = "apple", _String[1] = "apple"};        printf ("%d\n", strcmp (_String[0], _String[1]));    printf ("%d\n", String_Compare (_String[0], _String[1]));        return 0;} int String_Compare (const char* _First_String_, const char* _Second_String_) {        int result = 0;    while (!(result = *(unsigned char*) _First_String_ - *(unsigned char*) _Second_String_) && *_Second_String_)        ++_First_String_, ++_Second_String_;            if (result < 0) return -1;    else if (result > 0) return 1;    return 0;}Colored...

realloc


123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152#include <stdio.h>#include <stdlib.h> char** Create_Array(int horizon, int vertical);void Delete_Array(char** _Array, int vertical);int Optimize_Vertical_Size(char*** _Array, int vertical); void Display_Array(char** _Array);int Input_Array(char** _Array, int vertical); void bubble_sort(char** array, int size);void swapping(char** current, char** next); int main(void) {     int horizon = 30, vertical = 10;    char** _Array = (char**)Create_Array(horizon, vertical); // Dynamic memory allocation     int Number_Of_Input = Input_Array(_Array, vertical);    if (Number_Of_Input < 0) return -1;     bubble_sort(_Array, Number_Of_Input);    Display_Array(_Array);     Delete_Array(_Array, Number_Of_Input + 1); // free memory     return 0;} void bubble_sort(char** array, int size) {     int allElement = 0, partialElement = 0;     for (allElement = 0; allElement < size; allElement++) {        for (partialElement = 0; partialElement < size - 1; partialElement++) {            if (strcmp(*(array + partialElement), *(array + partialElement + 1)) > 0) {                 swapping(&(*(array + partialElement)), &(*(array + partialElement + 1)));            }        }        partialElement++;    }     return;}void swapping(char** current, char** next) {     char* temporary = (char)0;     temporary = *current;    *current = *next;    *next = temporary;     return;}  int Input_Array(char** _Array, int vertical) {     if (_Array == (char)0) {         printf("Error! The array is null. Input_Array()\n");        return -1;    }     int index = 0;    for (index = 0; index < vertical; index++) {         scanf("%s", *(_Array + index));        getchar();        if (*(*(_Array + index) + 0) == '0') break;    }     if (index == vertical) return index;     *(*(_Array + index) + 0) = (char)0;    int result = Optimize_Vertical_Size(&_Array, index);    if (result < 0) return -2;     return index;} void Display_Array(char** _Array) {     int index = 0;    for (index = 0; *(*(_Array + index) + 0) != (char)0; index++) {         printf("%s\n", *(_Array + index));    }     return;} void Delete_Array(char** _Array, int vertical) {     int index = 0;    for (index = 0; index < vertical; index++) {         free(*(_Array + index));    }    free(_Array);     return;} int Optimize_Vertical_Size(char*** _Array, int vertical) {     if (*_Array == (char)0) {         printf("Error! The array is null. Optimize_Vertical_Size()\n");        return -1;    }     *_Array = (char**)realloc(*_Array, (vertical + 1) * sizeof(char*));    if (_Array == (char)0) {         printf("Error! Dynamic memory allocation. Optimize_Vertical_Size()\n");        return -2;    }     return 1;} char** Create_Array(int horizon, int vertical) {     if (horizon < 1 || vertical < 1) {         printf("Error! Input zero or more. Create_Array()\n");        return (char)0;    }     vertical++;    char** Return_Array = (char**)calloc(vertical, sizeof(char*));    if (Return_Array == (char)0) {         printf("Error! Dynamic memory allocation(1). Create_Array()\n");        return (char)0;    }     int index = 0;    for (index = 0; index < vertical; index++) {         *(Return_Array + index) = (char*)calloc(horizon, sizeof(char));        if (*(Return_Array + index) == NULL) {             printf("Error! Dynamic memory allocation(2). Create_Array()\n");            return (char)0;        }    }     return (char**)Return_Array;}Colored...

2018년 11월 27일 화요일

testing structure


123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111#include <stdio.h>#include <stdlib.h>#define NUMBER_OF_CLASS 2 struct Student {        char name[20];    int korean;    int english;    int math;}; void input (struct Student* _Class[], int Number_Of_Class);void _input (struct Student* __Class);void __input (struct Student ___Class); void Display_Class (struct Student* _Class[], int Number_Of_Class, int Number_Of_Student); int main(void) {        struct Student* _Class[NUMBER_OF_CLASS] = { 0, };    int Maximum_Number_Of_Student = 50;        // Dynamic memory allocation    int index = 0;    for (index = 0; index < NUMBER_OF_CLASS; index++) {                _Class[index] = (struct Student*) calloc (Maximum_Number_Of_Student, sizeof (struct Student));        if ((struct Student*)_Class[index] == (char) 0) {                        printf ("Error! Dynamic memory allocation, main()\n");            return -1;        }    }        //print    Display_Class (_Class, NUMBER_OF_CLASS, Maximum_Number_Of_Student);        input ((struct Student**) _Class, NUMBER_OF_CLASS); // class, student    //_input ((struct Student*)* _Class); // student    //__input(** _Class); // value        //print    Display_Class (_Class, NUMBER_OF_CLASS, Maximum_Number_Of_Student);        // free ()    for (index = 0; index < NUMBER_OF_CLASS; index++) {                if ((struct Student*) _Class[index] != (char) 0) _Class[index] = (char) 0;        free ((struct Student*) _Class[index]);    }        return 0;} void Display_Class (struct Student* _Class[], int Number_Of_Class, int Number_Of_Student) {        int _class = 0, student = 0;    for (_class = 0; _class < NUMBER_OF_CLASS; _class++) {        for (student = 0; student < Number_Of_Student; student++) {                        printf ("<< [%2d] Class >> [%2d]", _class + 1, student + 1);            printf ("%s %d %d %d\n",(*(*(_Class + _class) + student)).name,                                    (*(*(_Class + _class) + student)).korean,                                    (*(*(_Class + _class) + student)).english,                                    (*(*(_Class + _class) + student)).math);        }        printf ("\n");    }} void input (struct Student* _Class[], int Number_Of_Class) { // Call by adress or call by reference, call by value        int Number_Of_Student = 3;    int _class = 0, student = 0;    for (_class = 0; _class < NUMBER_OF_CLASS; _class++) {        for (student = 0; student < Number_Of_Student; student++) {                        printf (">> [%2d] Class << [%2d]", _class + 1, student + 1);            (char*) gets ((char*) (*(*(_Class + _class) + student)).name);        }        printf("\n");    }    printf ("=============\n\n");        return;}void _input (struct Student* __Class) { // call by adress or call by reference, call by value        int Number_Of_Student = 3;    int student = 0;    for (student = 0; student < Number_Of_Student; student++) {                printf (">> [%2d] Class << [%2d]", 1, student + 1);        (char*) gets ((char*) (*(__Class + student)).name);    }    printf("\n");        return;} void __input (struct Student ___Class) { // call by value        int Number_Of_Student = 1;        printf (">> [%2d] Class << [%2d]", 1, 1);    (char*) gets ((char*) ___Class.name);    printf("\n");        return;}Colored...

2018년 11월 25일 일요일

array stack


"arraystack.h" 123456789101112131415161718192021222324252627282930313233#ifndef _ARRAY_STACK_#define _ARRAY_STACK_ typedef struct Array_Stack_Node_Type {     char data;    int _Number;} Array_Stack_Node; typedef struct Array_Stack_Type {     int Maximum_Element_Count;    int Current_Element_Count;    Array_Stack_Node* Pointer_Element;} Array_Stack; Array_Stack* Create_Array_Stack(int Maximum_Element_Count);int Push_Array_Stack(Array_Stack* Pointer_Stack, Array_Stack_Node element);Array_Stack_Node* Pop_Array_Stack(Array_Stack* Pointer_Stack);Array_Stack_Node* Peek_Array_Stack(Array_Stack* Pointer_Stack);void Delete_Array_Stack(Array_Stack* Pointer_Stack);int Is_Array_Stack_Full(Array_Stack* Pointer_Stack);int Is_Array_Stack_Empty(Array_Stack* Pointer_Stack); #endif // !_ARRAY_STACK_ #ifndef _COMMON_STACK_DEFAULT#define _COMMON_STACK_DEFAULT #define TRUE    1#define FALSE    0 #endif // !_COMMON_STACK_DEFAULTColored...