#include < stdio.h>
#include < stdlib.h>
#include < string.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 == NULL) {
printf("\n\n Stack is empty !\n");
return 0;
}
else{
item = temp->data;
top = temp->link;
free(temp);
return item;
}
}
void del()
{
stackNode* temp;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
}
else {
temp = top;
top = top->link;
free(temp);
}
}
void printStack()
{
stackNode* p=top;
printf("\n STACK [ ");
while(p){
printf("%c ",p->data);
p = p->link;
}
printf("] ");
}
int main(void)
{
element item[50];
int i=0;
top = NULL;
printf("문자열 입력 : ");
do
{
scanf("%c",&item[i]);
push(item[i]);
i++;
printStack();
}while(item[i] != '\n');
printf("end");
}
문자열을 입력한후에 스택에 넣은후 거꾸로 출력하는 코드입니다. 문자열을 입력한후 엔터를 누르면 do-while 구문이 종료되고 엔드라는 프린트가 나와야하는데 엔터값이 입력이 됩니다 scanf를 getchar로 바꿔도 똑같이 반응하네요
예를 들어 hello를 입력한 후에 엔터를 누르면 사진을 보시는것과 같이 엔터값이 입력되고 end가 나오지않네요 어떡해 해결해야할지 모르겠습니다. 도와주세요!!!