자꾸 strcpy(date) 이부분에서 오류가 뜬다고 나오는데 아무리 머리를 쥐어짜도 모르겠네요 ㅠㅠ 그리고 오류가 있어도 실행은 되는데 6번 일정입력기능을 들어가서 입력하면 계속진행되는게 아니라 프로그램이 종료되네요 이거 어떻게 해결해야 할까요 ??
#include <stdio.h>
#include <string.h>
#define Title_LEN 20
#define Memo_LEN 20
#define MAX_DATA_NUM 100
#define Date_LEN 50
struct member{ //회원정보
char id; //학번
char name[10]; //이름
int contact; //연락처
char address[100]; //주소
}typedef member;
struct scheduel { //동아리 일정
int date[Date_LEN]; //날짜
char title[Title_LEN]; //제목
char memo[Date_LEN]; //메모
}typedef scheduel;
struct bookborrow{ //도서 대여정보
int id[10]; //회원 번호
int ISBN; //ISBN
int borrow[100]; //대여날짜
int return_[100]; //반납날짜
}typedef borrowreturn;
int compare(char *str1, char *str2); //비교함수
int num_total_book=0; //현재 책의 수
int num_borrowtotal_book=0; //현재 빌린 책의 수
int num_total_member=0; //현재 회원 수
int main(void) {
member mk[10] = {0}; //저장 크기
borrowreturn bw[10] = {0};
int index = 0; //주소값 지정
int select; //동작 입력
int del_index; //삭제, 수정용 주소값
int i; //for문 반복 횟수용
scheduel * parr;
int * pnum;
/*사용자 메뉴 화면 출력(UI)*/
while(1) {
system("chs"); //콘솔창 지우기
printf("\n-----------------------------\n");
printf(" 도서관 정보 시스템\n");
printf("-----------------------------\n");
printf(" ['1'] 새로운 회원 정보(회원번호, 이름, 연락처, 주소) 입력\n");
printf(" ['2'] 기존 회원 정보 삭제\n");
printf(" ['3'] 기존 회원 정보 수정\n");
printf(" ['4'] 기존 회원 리스트 출력\n");
printf(" ['5'] 회원 목록 중 이름 또는 연락처로 검색\n");
printf("-----------------------------\n");
printf(" ['6'] 일정입력\n");
printf(" ['7'] 일정삭제\n");
printf(" ['8'] 일정정 출력\n");
printf(" ['9'] 일정 저장\n");
printf(" ['10'] 일정\n");
printf("-----------------------------\n");
printf(" ['11'] 도서 대여정보(ISBN,회원번호, 대여날짜, 반납날짜) 입력\n");
printf(" ['12'] 기존 대여 정보 수정\n");
printf(" ['13'] 주어진 날짜(년 월 일)에 대여 중이거나 중이었던 도서리스트 출력\n");
printf("-----------------------------\n");
printf(" ['-1'] 프로그램 종료\n");
printf("-----------------------------\n");
printf("\n\n 원하시는 서비스를 선택하세요.");
scanf("%d",&select);
if(select == 5) { // [5] 회원 목록 중 이름 또는 연락처로 검색
system("cls");
printf("\n");
int num_total_member;
int user_m_input; // 사용자의 입력받기
char user_m_search[30];
printf("어느 것으로 검색 할 것인가요? \n");
printf("1. 이름 검색 \n");
printf("2. 연락처 검색 \n");
scanf("%d", &user_m_input);
printf("검색할 단어를 입력해주세요 : ");
scanf("%s", &user_m_search);
printf("검색 결과 \n");
if (user_m_input == 1) { //이름과 검색어 비교
for (i = 0; i < num_total_member; i++) {
if (compare(mk[i].name, user_m_search)) {
printf("번호 : %d // 회원번호 : %d // 이름 : %s // 연락처 : %d // 주소 : %s \n", i,mk[i].id, mk[i].name,mk[i].contact, mk[i].address);
}
}
}
else if (user_m_input == 2) { //연락처와 검색어 비교
for (i = 0; i < num_total_member; i++) {
if (compare(mk[i].contact, user_m_search)) {
printf("번호 : %d // 회원번호 : %d // 이름 : %s // 연락처 : %d // 주소 : %s \n", i,mk[i].id, mk[i].name,mk[i].contact, mk[i].address);
}
}
}
return 0;
}
else if(select == 6) { //[6]일정 입력
system("cls"); //콘솔창 지우기
int date[Date_LEN];
char title[Title_LEN], memo[Memo_LEN];
printf("[ INSERT ] \n");
printf("일정입력 : "); scanf("%d", date);
printf("제목입력: "); scanf("%s", title);
printf("내용입력 : "); scanf("%s", memo);
strcpy(parr[*pnum].date, date);//날짜데이터에 날짜저장
strcpy(parr[*pnum].title, title);//제목데이터에 제목저장
strcpy(parr[*pnum].memo, memo);//내용데이터에 내용저장
(*pnum)++;//데이터 갯수 증가
printf("--------> 입력완료!.....\n");
}
else if(select == 7){ //[7]일정 삭제
system("cls");
printf("\n");
int i, j;
char title[Title_LEN];//제목
printf("[ Remove ] \n");
printf("Input Name for Removing : "); scanf("%s", title);
for(i=0; i < *pnum; i++)
{
if(strcmp(parr[i].title, title)==0)
{
for(j=i+1; j < *pnum; j++)
{
strcpy(parr[j-1].date, parr[j].date);
strcpy(parr[j-1].title, parr[j].title);
strcpy(parr[j-1].memo, parr[j].memo);
}
(*pnum)--;
return 0;
}
}
printf("-------> Data Not Found......\n");
}
else if(select == 8) { //[8] 일정출력
system("cls");
printf("\n");
int i, num;
printf("[ Print All Data ] \n");
for(i=0; i<num; i++)
printf("날짜 : %d / 제목 : %s / 내용 : %s\n", parr[i].date, parr[i].title,parr[i].memo);
}
else if(select == 9) { //[9] 일정
system("cls");
printf("\n");
FILE * file = fopen("a.txt", "rt");
if(file==NULL)
{
return 0;
}
while(1)
{
fscanf(file, "%d %s %s", parr[*pnum].date, parr[*pnum].title,parr[*pnum].memo);
if(feof(file)!=0)
break;
(*pnum)++;
}
}
else if(select == 10) { //[10] 일정 저장
system("cls");
printf("\n");
int i,num;
FILE * file = fopen("a.txt", "wt");
if(file==NULL)
{
printf("file open error!\n");
return 0;
}
for(i=0; i<num; i++)
fprintf(file, "%d %s %s ", parr[i].date, parr[i].title, parr[i].memo);
}
}
return 0;
}
int compare(char *str1, char *str2) { /*문자열 비교 함수*/
while (*str1) {
if (*str1 != *str2) { //str과 str2가 같을 경우 실행, 아닐 경우 지나감
return 0;
}
str1++;
str2++;
}
if (*str2 == '\0') //NULL 삽입
return 1;
return 0;
}