서로 관련있는 변수들을 모아서 하나의 새로운 타입을 만들어주는 기능입니다.
이번 주제는 학생에 대하여 실습해봅니다.
student라는 이름을 구조체로 합칩니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
이와 같은 경우는 이름,학번,한국어,영어,수학이 같이 들어있습니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
int main() {
student korean_student = {};
return 0;
}
배열과 같이 korean_student를 {}
로 초기화합니다.
온점을 이용해서 korean_student안 포함되있는 항목들에 대입해줍니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
int main() {
student korean_student = {};
korean_student.num = 20171600;
korean_student.kor = 100;
korean_student.eng = 100;
korean_student.math = 50;
return 0;
}
다만, 문자열은 바로 대입할 수 없습니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
int main() {
student korean_student = {};
strcpy_s(korean_student.name, "minsoo");
strcat_s(korean_student.name, " kim");
korean_student.num = 20171600;
korean_student.kor = 100;
korean_student.eng = 100;
korean_student.math = 50;
return 0;
}
문자열은 strcpy_s
와 strcat_s
를 이용하여 복사와 붙혀넣기를 합니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
int main() {
student korean_student = {};
strcpy_s(korean_student.name, "minsoo");
strcat_s(korean_student.name, " kim");
korean_student.num = 20171600;
korean_student.kor = 100;
korean_student.eng = 100;
korean_student.math = 50;
if (strcmp(korean_student.name, "minsoo kim") == 0) {
cout << "학생을 찾았습니다 : " << korean_student.name << endl;
}
cout << "name : " << korean_student.name << endl;
cout << "number : " << korean_student.num<< endl;
cout << "korean : " << korean_student.kor << endl;
cout << "english : " << korean_student.eng << endl;
cout << "math : " << korean_student.math << endl;
return 0;
}
문자열을 비교할때는 strcmp
를 이용합니다.
같으면 0을 반환합니다.
cout << "name : " << korean_student.name << endl;
cout << "number : " << korean_student.num<< endl;
cout << "korean : " << korean_student.kor << endl;
cout << "english : " << korean_student.eng << endl;
cout << "math : " << korean_student.math << endl;
기존 출력 방법이랑 동일합니다.
#include<iostream>
using namespace std;
#define size 64
struct student
{
char name[size];
int num;
int kor;
int eng;
int math;
};
int main() {
student korean_student = {};
strcpy_s(korean_student.name, "minsoo");
strcat_s(korean_student.name, " kim");
korean_student.num = 20171600;
korean_student.kor = 100;
korean_student.eng = 100;
korean_student.math = 50;
if (strcmp(korean_student.name, "minsoo kim") == 0) {
cout << "학생을 찾았습니다 : " << korean_student.name << endl;
}
cout << "name : " << korean_student.name << endl;
cout << "number : " << korean_student.num<< endl;
cout << "korean : " << korean_student.kor << endl;
cout << "english : " << korean_student.eng << endl;
cout << "math : " << korean_student.math << endl;
return 0;
}
- 과제-1 : 구조체 형식으로 특정 물건의 정보를 출력하는 프로그램 제작하기
출력 형식 :
enter your country : //입력 받기(ko, en)
name : good-laptop
// 만약 판매처가 한국이면, 물건 이름뒤에 "-ko"붙이기
// 만약 판매처가 미국이면, 물건 이름뒤에 "-en"붙이기
price : 700000
os : // os pre-install = en, os none = ko