#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
struct person { //이름과 번호 구조체
char name[15];
char pnumber[15];
}data[SIZE];
int i=-1;
void insert(void);
void del(void);
void list(void);
void search(void);
int main(void)
{
int n = 0;
while (1)
{
printf("-------------전화번호부----------\n");
printf(" 1.입력\n");
printf(" 2.삭제\n");
printf(" 3,목록\n");
printf(" 4.검색\n");
printf(" 5.종료\n");
scanf("%d", n);
switch (n)
{
case 1:
insert();
break;
case 2:
del();
break;
case 3:
list();
break;
case 4:
search();
break;
case 5:
return;
default :
printf("잘못 입력하였습니다.");
}
}
}
void insert(void) //입력
{
i++;
char n[15], pn[15];
printf("이름을 입력하세요. (종료시 0 입력) \n");
scanf("%s \n", n);
strcpy(data[i].name, n);
if (n == 0)
return;
printf("전화번호를 입력하세요. \n");
scanf("%s \n", pn);
strcpy(data[i].pnumber, pn);
}
void del(void)
{
int result;
char n[15];
printf("삭제할 이름을 입력하세요. \n");
scanf("%s \n", n);
result = strcmp(data[i].name, n);
if (result == 1) {
printf("삭제하였습니다.\n");
strcpy(data[i].name, data[i + 1].pnumber);
strcpy(data[i].name, data[i + 1].pnumber);
}
else
printf("없는 이름입니다.\n");
}
void list(void)
{
int j;
if (i == -1);
printf("저장된 번호가 없습니다.");
for (j = 0; j < i; j++) {
printf("이름 : %s , 전화번호 : %s \n", data[i].name, data[i].pnumber);
}
}
void search(void)
{
int result;
char n[15];
printf("검색할 이름을 입력하시오. \n");
scanf("%s \n", n);
result = strcpy(data[i].name, data[i + 1].name);
}
search 부분 함수를 저다음에 뭐라고 해야할 지 모르겠습니다.
그리고 실행시키면 실행은 되는데 메뉴를 선택하면 위치를 기록하는데 액세스 위반이 되었다고 진행되지 않는데 왜그런건가요?
그래도 안되는데 왜그런거죠ㅣㅣ
struct person { //이름과 번호 구조체 char name[15]; char pnumber[15]; }data[SIZE]; 내가 씨언어 못해서 모는건지는 모르겠으나 구조체를 데이타라는 이름으로 따로정의하려면 스트럭트앞에 typedef 붙여야하지않냐? 그리고 데이터로 이름 정의해서 data형 변수만들고 거기에 사이즈 전처리기
정의한만큼 선언하면 한거지 구조체에서도 사이즈 지정해주냐?
구조체 문제는 아닌거 같고 에러메시지가 주소값을 초과했을때 나는 메시지 아닌가요 게임 개발자님이 알려주신 방법대로 해도 안되네요 ;;
스보다 말았다 말이안되는게 한두가지가 인서트함수는 리턴형이 void고 인자도 없는데 i++ 이 아이가 선언도안되고 증가하네...
게임개발자 그런거였어? 내가 버릇처럼 써서그런거구나 그럼 인서트함수는?
아 상단에 전역변수로 선언됬다고? 재대로 보지도 않았네 미안 ㅋㅋㅋ
열정적으로 대화 나눠주셔서 감사합니다만 이유가 뭘까요?
scanf(\"%s n\", n); 인서트함수에 이건 단순 오타?
컴파일은 되는데 그 다음에 숫자를 입력하면 안되요 i++는 돌아가는 프로그램 보니깐 그것도 그렇게 되있더라고요
코니// 그건 \0 이거에요
함 해봐요 밑소스 보기전에 우선 저게 보여서
아 돌아가긴 하네요 나머지부분들이 이상해서 다시 손봐야겠네요 search 함수부분은 그 다음에 어떤식으로 하는게 좋을까요 도저히 감이 안와서
입력이랑 종료만 되고 나머진 안되네요 ;