본문 바로가기

C언어/예습

[C언어 예습]DAY18_구조체1

구조체(타입)

변수 : 반복되는 값들을 편하게 관리하기 위해
함수 : 반복되는 문장들을 편하게 관리하기 위해서
구조체 : 반복되는 변수들을 편하게 관리하기 위해서
           (함수는 C++, JAVA에서 관리 가능 : 클래스)

 

     - 구조체를 사용하기 위해서는 공통요소를 찾아야함! 


구조체 선언
     struct 구조체이름{
          자료형 멤버변수명;
          ...
     };

구조체 사용

(1)
     struct 구조체이름 변수명;
     변수명.멤버변수명 = 값;

        (  . : 하위연산자 )
        (  A.b : A안에 b )



(2)
     struct 구조체이름 변수명 = { .멤버변수명 = 값,...}

(3)
     struct 구조체이름 변수명 = {값, ...}

 


 

#include <stdio.h>
#include <windows.h>
//Animal 구조체 만들기
struct Animal {
	//구조체 내에서는 초기화 할 수 없다.
	char name[20];
	int age;
	char feed[20];
};

void main() {
	//돼지

	struct Animal dog = {"뽀삐", 10, "사료"};
	printf("동물 이름을 입력하세요\n");
	scanf_s("%s", dog.name, sizeof(dog.name));

	printf("%s 나이를 입력하세요\n", dog.name);
	scanf_s("%d", &dog.age);

	printf("%s 먹이를 입력하세요\n", dog.name);
	scanf_s("%s", dog.feed, sizeof(dog.feed));

	system("cls");

	printf("동물 이름 : %s\n", dog.name);
	printf("%s 나이 : %d살\n", dog.name, dog.age);
	printf("%s 먹이 : %s\n", dog.name, dog.feed);

}

 


//1024로 입력하면 "일공이사"로 출력하기

//함수만들기

 


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

void changeToHangle(char* );

void main() {
	char arNum[10] = "";

	printf("한글로 변경하실 정수를 입력하세요.\n");
	scanf_s("%s", arNum, sizeof(arNum));
	//문자열의 경우 사이즈를 넘겨줘야함.
	//사이즈가 넘을 경우, 큰 오류가 생길 수 있음.

	changeToHangle(arNum);

}

void changeToHangle(char* arNum){
	//문자열 : 1024
	char arHangle[10][5] = { "공", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구" };
	
	for (int i = 0; i < strlen(arNum); i++) {
		printf("%s", arHangle[arNum[i] - 48]);
	}
	printf("\n");
	
	//arHangle[arNum[0] - 48] //"일"
	//arHangle[arNum[1] - 48] //"공"
	//arHangle[arNum[2] - 48] //"이"
	//arHangle[arNum[3] - 48] //"사"

}