ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 구조체와 배열
    Visual Studio/C 기초 2012. 9. 6. 16:19

    구조체안에 배열을 삽입하는 방법입니다. (우엑)

    구조체와 배열을 사용하는 프로그램은 음.. 전화번호부를 관리하는 프로그램에서 사람의 이름과 전화번호를 저장하기 위해 구조체를 정의할 수 있습니다.

    struct adress{

    char fname[10];

    char lname[12];

    char phone[8];

    };

    struct adress list[100];

    이 문장은 100개의 요소를 가지는 list라는 이름의 배열을 선언하는데, 모든 요소는 adress형 구조체 변수이고 각 요소는 일반적인 배열 요소와 마찬가지로 첨자에 의해서 구분됩니다.

    list 배열 한 칸당 fname[10], lname[12], phone[8] 배열이 들어있다고 보시면 됩니다.

    예제를 보겠습니다.

     

    #include <stdio.h>
    struct adress {
     char fname[20]; //family name, 20은 입력받을 글자 수입니다.
     char lname[20]; //last name
     char phone[20]; //phone number
    };

    struct adress list[4];  //입력받을 인원 수입니다. 숫자를 변경할 때 밑에 반복 횟수도 늘려줘야겠죠?

    int i;

    main(){
     for(i=0;i<4;i++)  //인원 수만큼 반복합니다. 여기선 4번 반복하네요.
     {
      printf("성을 입력해주세요 : ");
      scanf("%s",list[i].fname);
      printf("이름을 입력해주세요 : ");
      scanf("%s",list[i].lname);
      printf("전화번호를 -빼고 입력해주세요 : ");
      scanf("%s",list[i].phone);
    }
     puts("\n\n");
     for(i=0;i<4;i++){
      printf("이름 : %s %s", list[i].fname, list[i].lname);
      printf("\t\t전화번호 : %s\n", list[i].phone);
     }
    }

     

    구조체의 초기화

    C의 다른 변수형과 마찬가지로 구조체를 선언하는 동시에 초기화할 수 있습니다. 배열을 초기화 하는 법과 비슷합니다. 고객 장부를 예로 들어보겠습니다.

    struct sale {
     char customer[20];
     char item[20];
     float amount;
    }sale={"ABC 회사","초콜릿","1000.0"}; //구조체멤버 sale.customer를 ABC 회사로, sale.item을 초콜릿으로, sale.amount를 1000.0으로 초기화 합니다.

    구조체 멤버로 가지는 구조체의 경우에는 순서대로 초기값을 나열하면 됩니다.

    다음엔 포인터가 구조체 멤버로 사용되는 경우에 대해 포스팅 하겠습니다. 좋은하루 되시기 바랍니다^^

    댓글

Designed by Tistory.