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
#include <stdio.h>
#include <stdlib.h>
 
typedef char element;
 
typedef struct stackNode {
    element data;
    struct stackNode *link;
}stackNode;
 
stackNode *top;
 
void push(element item) {
    stackNode *temp = (stackNode *)malloc(sizeof(stackNode));
    temp->data = item;
    temp->link = top;
    top = temp;
}
element pop() {
    element item;
    stackNode* temp = top;
 
    if (!top) {
        printf("\n\n Stack is Empty!\n");
        return 0;
    }
    else {
        item = temp->data;
        top = temp->link;
        free(temp);
        return item;
    }
}
void main() {
    char c, i;
 
    printf("문자열 입력 : ");
    while ((c = getchar()) != '\n') push(c);
 
    printf("역순 문자열 출력 : ");
    while (top != NULL) {
        i = pop();
        printf("%c", i);
    }
 
    printf("\n");
 
    getchar();
}
cs

한글은 유니코드 2바이트고 영어는 아스키코드 1바이트니까 한글을 받지 못하는건 알겠는데
여기서 한글까지 역순으로 받고 싶으면 어떻게하나요 ... 배열이면 차라리 2바이트 묶음으로 할텐데
malloc 이라서 감이 안잡힙니다