#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=1;
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;
default :
printf("잘못 입력하였습니다.\n");
}
}
}
void insert(void) //입력
{
char n[15], pn[15];
while (1)
{
i++;
printf("이름을 입력하세요. (종료시 0 입력) \n");
scanf("%s", n);
if (n[0] == '0')
return;
strcpy(data[i].name, n);
printf("전화번호를 입력하세요. \n");
scanf("%s", pn);
strcpy(data[i].pnumber, pn);
}
}
void del(void)
{
int result;
char n[15], pn[15];
printf("삭제할 이름을 입력하세요. \n");
scanf("%s", n);
result = strcmp(data[i].name, n);
if (result == 0) {
strcpy(data[i].name, data[i + 1].pnumber);
strcpy(data[i].pnumber, data[i + 1].pnumber);
}
else
printf("없는 이름입니다.\n");
}
void list(void)
{
int j;
if (i == -1){
printf("저장된 번호가 없습니다.");
return;
}
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);
result = strcmp(data[i].name, n);
if (result == 0){
printf("이름:%s 전화번호:%s", data[i].name, data[i].pnumber);
}
else
printf("입력 값에 대한 정보가 없습니다.\n");
}
del , list , search 함수가 제대로 돌아가지 않는데 왜그런건가요
하루종일 이것만 붙잡고 있었네요
잘봤읍니다
if (result == 0) { strcpy(data[i].name, data[i + 1].pnumber); strcpy(data[i].pnumber, data[i + 1].pnumber); } 여기 네임은 다음데이타 네임이랑 붙여야지
for (j = 0; j < i; j++) { printf(\"이름 :%s 전화번호 :%s n\", data[i].name, data[i].pnumber); } 여기는아이가이니라 제이겠지
result = strcmp(data[i].name, n); 검색은 냅다 이리쓰면 마지막으로등록한 이름만가지고놀잖아 포문돌려서 하나씩 비교해야지