c언어 관련 질문 드립니다.

c언어 관련 질문 드립니다.

작성일 2022.04.03댓글 1건
    게시물 수정 , 삭제는 로그인 필요

구조체를 이용하여 주소록 제작연습중인데 현제 검색기능에서 구조체배열의 0번만 검색이 가능합니다 그외 이름은 검색이 불가능하구요 다른방법으로 구현은 가능하나 현제 상태의 코드에서 무엇이 문제인지 모르겠어서 질문드립니다. c언어 고수분들 도와주세요!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
char adres[100];
char number[20];
char name[20];
char bus[20];
}info;

void all(info* a, int count); //목록보기
void add(info* a, int count); //추가
void such(info* a); //검색

void main()
{
int count = 0, inum = 0;
info a[20] = { 0 };

while (1)
{
printf("1.목록보기 2.추가 3.검색 4.삭제 5.종료\n");
scanf("%d", &inum);
getchar();

switch (inum)
{
case 1:
all(a, count);
break;
case 2:
if (count > 20) printf("더이상 추가할수 없습니다.");
add(&a[count], count);
count++;
break;
case 3:
such(a);
break;
case 5:
exit(0);
break;
default:
printf("없는 번호 입니다.");
break;
}
}
}

void all(info* a,int count) //목록보기
{
int i;

printf(" 이름\t 전화번호\t주소\t생일\n");
printf("\n");
for (i = 0; i < (count+1); i++)
{
printf(" %s\t  %s\t%s\t%s\n", a[i].name, a[i].number, a[i].adres, a[i].bus);
}
}

void add(info* a,int count) //추가
{
printf("이름 : ");
gets_s(a->name,sizeof(a->name));
printf("전화번호 : ");
gets_s(a->number,sizeof(a->name));
printf("주소 : ");
gets_s(a->adres, sizeof(a->adres));
printf("생일 : ");
gets_s(a->bus, sizeof(a->bus));
}

void such(info* a)
{
char _name[20];

printf("이름을 입력해주세요 : ");
gets_s(_name, sizeof(_name));

if (strcmp(a->name, _name) == 0)
{
printf(" 이름\t 전화번호\t주소\t생일\n");
printf(" %s\t  %s\t%s\t%s\n", a->name, a->number, a->adres, a->bus);
}
else
printf("없는 정보 입니다.\n");
}


#c언어 관련 자격증 #c언어 관련 책 #c언어 관련 직업 #c언어 관련 문제

profile_image 익명 작성일 -

#include <stdio.h> typedef struct { char adres[100]; char number[20]; char name[20]; char bus[20]; }info; int main(void) { printf("%ld\n", sizeof(info)); info a[20]; a[0].adres[0] = '1'; a[1].adres[0] = '2'; printf("%c\n", a->adres[0]); printf("%c\n", (a+1)->adres[0]); return 0; } // 실행 결과 160 1 2
void such(info* a, int size) { char _name[20]; int i; printf("이름을 입력해주세요 : "); gets_s(_name, sizeof(_name)); for(i=0; i<size; i++){ if (strcmp((a+i)->name, _name) == 0) { printf(" 이름\t 전화번호\t주소\t생일\n"); printf(" %s\t %s\t%s\t%s\n", (a+i)->name, (a+i)->number, (a+i)->adres, (a+i)->bus); return; } } printf("없는 정보 입니다.\n"); }

대략 위 코드처럼 만드시면 됩니다.

현재 such 함수는 a[0]에서만 탐색하기에 0만 확인합니다.

a+i(포인터 개념) 대신, a[i]로 하여도 됩니다.

C언어 관련강의 질문드립니다.

대학교 수업으로 c언어를 배울 예정인데 간단한... 이와 관련된 강의 영상이 있는지 또는 이런 내용을 어떤... 있는데 필요한 강의 들어보시는걸 추천드립니다

C언어 관련 질문드립니다.

기초 강의를 보는 중인데 여기서 0x1234에는 3이 들어가지만 나머지 칸에는 0이 들어가는 이유를 잘 모르겠습니다. 0x0003이 역순으로 기록되는 건가요? 맞아요...

C언어 관련 질문 드립니다.

C언어 관련 질문 드립니다. a에는 222~를 입력한 것이고 b는 1을 입력힌 것입니다. 일정 수를 넘으면 쓰레기 값이 출력되던데 1. 왜 이렇게 되는 건가요??? 2. 일정 수가...

c언어 출력 관련 질문드립니다.

오랜만에 C언어 다시 공부하고 있는데, 입출력 관련 질문드립니다. 알려주시면 참고해서 공부해볼게요! 안녕하세요. 코딩하다 모르면...

c언어 관련 질문드립니다

... i++) { printf("%d", (rand() % 45) + 1); } } c언어 공부하다가 이런 프로그램을 봤는데 for조건문은 0~45까지 난수 6개 생성하는건 알겠습니다 근데...

c언어 관련 질문 드립니다.

... 모르겠어서 질문드립니다. c언어 고수분들 도와주세요! #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char adres[100]...

C언어 독학 관련 교재 질문 드립니다

C언어 독학 관련 교재 질문 드립니다. 관련지식은 없습니다(필요하다면 인강도 구매할생각) 1. 순서가 궁굼해요 혹시 C언어 이전에 알아야할게 있나요? 있다면 C언어를...

C언어 자료형 관련 질문드립니다

... 빠르고 성실한 답변 부탁드립니다! 질문C언어인데 질문의 본질은 C언어가 아니네요. 질문의 보통 내용은 컴퓨터구조론이라는 과목에서 자세히...