#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TRUE 1
typedef struct data
{
 char datalist[20];
 
 
 struct data* Next;
}data;

data* AppendList(data* p);
data* InsertList(data* p);

data* DeleteList(data* p);

int   DisplayList(data* p);
void  FreeMallocList(data* p);
char  MenuData();


int main()
{
 data* head = (data*)malloc(sizeof(data));
 data* tail = head;
 head->Next = NULL;

 while(TRUE)
 {
  switch (MenuData())
  {
  case '1':
   tail = AppendList(tail);
   break;
  case '2':
   head = InsertList(head);
   break;
  
  case '3':
   head = DeleteList(head);
   break;
  
  case '4':
   DisplayList(head);
   getchar(); break;
   
  case '0':
   FreeMallocList(head);
   return;
  default:
   puts("\t 없는 메뉴 \a \a \a");
  }
 }
 return 0;
}
char MenuData()
{
    char number;
 system("cls");
 puts("*** 링크드 리스트 ***");
 puts("*** 1.추가 리스트 ***");
 puts("*** 2.삽입 리스트 ***");
 puts("*** 3.삭제 리스트 ***");
 puts("*** 4.출력 리스트 ***");
 puts("*** 0.종료 리스트 ***");
 puts("*********************");

 printf("번호 선택[   ]\b\b\b");
 fflush(stdin);
 number = getchar();
 return number;
}
data* AppendList(data* p)
{
 printf("알파뱃을 입력하세요 : ");
 fflush(stdin);
 gets(p->datalist);
 p->Next = (data*)malloc(sizeof(data));
 p = p->Next;
 p->Next = NULL;
 return p;
}

int DisplayList(data* p)
{
 int i = 1;
 puts("\t ------------");
 puts("\t 번호   알파뱃 ");
 puts("\t ------------");
 while (p->Next !=NULL)
 {
  printf("\t = %8s \n",i++,p->datalist);
  p = p->Next;
 }

 puts("\t -----------------");
 puts("\t 아무키나 누르세요");
 getchar();
 return i-1;
}
data* InsertList(data* p)
{
 int pos,number;
 data* item;
 data* start = p;
 item = (data*)malloc(sizeof(data));
 number = DisplayList(p);

 do{
  printf("=> 삽입할 위치는 : ");
  scanf("%d",&pos);
 }while (pos<1 || pos>number);

 printf("알파뱃을 입력하세요 : ");
 fflush(stdin);
 gets(item->datalist);

 if (pos == 1)
 {
  item->Next = p;
  start = item;
 }
 else
 {
  int i;
  for(i=1; i<pos -1; i++)
  {
   p = p->Next;
  }
  item->Next = p ->Next;
  p->Next = item;
 }
 return start;
}

data* DeleteList(data* p)
{
 int pos, number;
 data* start = p;
 number = DisplayList(p);
 do{
  printf("=> 삭제할 번호는 : ");
  scanf("%d",&pos);
 }while (pos<1 || pos>number);

 if (pos == 1)
 {
  start = p->Next;
  free(p);
 }
 else
 {
  int i;
  data* tmp;
  for(i=1; i<pos -1; i++)
  {
   p = p->Next;
  }
  tmp = p->Next;
  p ->Next = p->Next->Next;
  free(tmp);
 }
 return start;
}

void FreeMallocList(data* p)
{
 data* tmp = p;
 while(p != NULL)
 {
  tmp = p->Next;
  free(p);
  p = tmp;
 }
 puts("종료되엇습니다.");
}

자료구조론 과제인데 연결리스트에서 대문자 소문자를 구분하는 프로그램을 짜라고하는데

인터넷에서 짜집기해서 만들어본건데 저건 대문자 소문자 구분없이 그냥 다 리스트에 들어가는데

저기서 대문자랑 소문자를 구분해서 리스트에 들어갈수있게 하는법좀 알려주세요 ㅠㅠ