우리가 좋아하는 과자 상자를 생각해 봐요. 과자 상자 안에는 여러 종류의 과자가 들어 있죠? 맛있는 쿠키, 달콤한 사탕, 고소한 땅콩처럼 말이에요. 마찬가지로, 구조체는 여러 가지 다른 종류의 정보를 하나의 상자처럼 묶어서 관리하는 방법이에요.
예를 들어, 우리 반 친구를 소개할 때 어떻게 해요?
이렇게 여러 가지 정보를 한꺼번에 말하죠? 이 정보들을 모두 구조체를 이용해서 한꺼번에 관리할 수 있어요.
C언어에서는 struct라는 키워드를 사용해서 구조체를 만들어요.
struct 친구 {
char 이름[20];
int 나이;
char 좋아하는_과목[20];
char 좋아하는_음식[20];
};
#include <stdio.h>
#include <string.h>
struct Student {
char name[20];
int age;
char grade;
};
int main() {
struct Student student1;
strcpy(student1.name, "홍길동");
student1.age = 10;
student1.grade = 'A';
printf("이름: %s\n", student1.name);
printf("나이: %d세\n", student1.age);
printf("학점: %c\n", student1.grade);
return 0;
}
만든 구조체를 사용하려면, 구조체의 이름으로 변수를 만들어 주면 돼요.
#include <stdio.h>
#include <string.h>
struct 친구 {
char 이름[20];
int 나이;
char 좋아하는_과목[20];
char 좋아하는_음식[20];
};
int main() {
struct 친구 홍길동;
strcpy(홍길동.이름, "홍길동");
홍길동.나이 = 10;
strcpy(홍길동.좋아하는_과목, "수학");
strcpy(홍길동.좋아하는_음식, "짜장면");
// 홍길동의 정보 출력
printf("이름: %s\n", 홍길동.이름);
printf("나이: %d살\n", 홍길동.나이);
printf("좋아하는 과목: %s\n", 홍길동.좋아하는_과목);
printf("좋아하는 음식: %s\n", 홍길동.좋아하는_음식);
return 0;
}
이렇게 하면 홍길동이라는 친구의 정보를 구조체에 저장할 수 있어요.
여러 명의 친구 정보를 저장하고 싶을 때는 어떻게 해야 할까요? 바로 구조체 배열을 사용하면 돼요. 배열은 같은 종류의 데이터를 여러 개 저장할 수 있는 공간이라고 생각하면 돼요.
struct 친구 반친구[30]; // 우리 반에 30명의 친구가 있다고 가정
strcpy(반친구[0].이름, "홍길동");
strcpy(반친구[1].이름, "임꺽정");
// ... (나머지 친구들 정보 입력)
우리가 좋아하는 동물을 구조체로 만들어 볼까요?
#include <stdio.h>
#include <string.h>
struct 동물 {
char 이름[20];
char 종류[20];
int 나이;
};
int main() {
struct 동물 강아지;
strcpy(강아지.이름, "멍멍이");
strcpy(강아지.종류, "골든 리트리버");
강아지.나이 = 3;
printf("강아지의 이름: %s\n", 강아지.이름);
printf("강아지의 종류: %s\n", 강아지.종류);
printf("강아지의 나이: %d살\n", 강아지.나이);
return 0;
}
이렇게 하면 우리 강아지의 정보를 쉽게 관리할 수 있겠죠?
#include <stdio.h>
#include <string.h>
struct Animal {
char name[20];
char species[20];
int age;
};
int main() {
struct Animal dogs[100]; //100마리
int numDogs = 0; // 실제 입력된 강아지 수
printf("몇 마리의 강아지 정보를 입력하시겠습니까? (최대마리): ");
scanf("%d", &numDogs);
// 강아지 정보 입력
for (int i = 0; i < numDogs; i++) {
printf("\n%d번째 강아지 정보:\n", i + 1);
printf("이름: ");
scanf("%s", dogs[i].name);
printf("종류: ");
scanf("%s", dogs[i].species);
printf("나이: ");
scanf("%d", &dogs[i].age);
}
// 입력된 강아지 정보 출력
printf("\n입력된 강아지 정보:\n");
for (int i = 0; i < numDogs; i++) {
printf("%d번째 강아지\n", i + 1);
printf("이름: %s\n", dogs[i].name);
printf("종류: %s\n", dogs[i].species);
printf("나이: %d살\n\n", dogs[i].age);
}
return 0;
}
c언어 파일 입출력: 내 컴퓨터에 글자를 저장하고 불러오기 (0) | 2024.08.27 |
---|---|
c언어 포인터 왜? 쓸까? (0) | 2024.08.27 |
c 언어 포인터 (0) | 2024.08.27 |
c언어 함수를 활용한 사용한 간단한 예제 (0) | 2024.08.27 |
c 언어 함수의 지역변수 & 전역변수 (0) | 2024.08.27 |