일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 구글 reCaptcha
- C언어 구조체
- C언어 배열
- HTML5
- 오라클
- C언어 매크로
- 텍스트 파일 읽기
- 역순
- GUI
- C언어 함수
- Google reCaptcha
- gcc
- Spring email
- Naver SmartEditor
- placehoder
- 포인터
- 날짜
- TCP/IP 소켓
- Oracle
- C언어 변수
- 자바
- jsp
- C언어
- Vim
- Spring google
- java
- SQL
- C언어 파일입출력
- URL 다운로드
- C언어 메모리
- Today
- Total
easy software
C언어 구조체의 유용함을 알아보자 본문
구조체는 정말 유용합니다.
관련 있는 데이터를 하나의 자료형으로 묶을 경우 관리하기가 편해지고,
코드도 간결해집니다.
#include <stdio.h>
struct person{
char name[20];
char phone[20];
};
int main(void){
struct person pArray[3];
for(int i = 0; i < 3; i++){
printf("이름, 전화번호 순으로 입력 : ");
scnaf("%s %s", pArray[i].name, pArray[i].phone);
}
printf("\n입력 결과는 다음과 같습니다.\n");
for(int i = 0; i < 3; i++){
printf("전화번호 : %s\n", pArray[i].name);
printf("전화번호 : %s\n", pArray[i].phone);
}
return 0;
}
위의 코드는 세명의 정보(이름, 전화번호)를 저장하고, 저장된 결과를 보여주는 프로그램입니다.
구조체를 사용했기 때문에 관련있는 데이터를 관리하기가 수월하겠죠?
구조체를 사용하지 않으면, 사람마다 일일이 데이터를 따로 관리해야하는 문제도 있을 수 있고,
코드도 훨씬 더 복잡해 질 수 있습니다.
그럼 위의 프로그램을 구조체를 사용하지 않으면서,
다차원 배열은 하나만 사용하여 구현해 보았습니다.
프로그램이 간단해서 망정이지, 복잡한 프로그램 이었으면 정말 어려웠을 거 같아요.
#include <stdio.h>
int main(void){
char iden[3][3][20];
int j = 0;
for (int i = 0; i < 3; i++){
j = 0;
printf("이름, 전화번호, 주소 순으로 입력: ");
scanf("%s %s %s", iden[i][j], iden[i][j + 1], iden[i][j + 2]);
}
printf("\n입력 결과는 다음과 같습니다.\n\n");
for (int i = 0; i < 3; i++){
j = 0;
printf("이름 : %s, ", iden[i][j]);
printf("전화번호 : %s, ", iden[i][++j]);
printf("주소 : %s \n", iden[i][++j]);
}
return 0;
}
위의 코드는 구조체를 사용하지 않고 작성한 프로그램입니다.
3차원 배열을 사용했으므로 첫번째 반복문에서 사용자로부터 입력받은 데이터는
3개의 면에 각각 이름, 전화번호, 주소 순으로 저장이 됩니다.
그리고 출력문을 포함한 반복문에서는 적절히 인덱스에 접근하여
저장된 데이터를 출력하고 있습니다.
** 그런데 코드를 보시면 3차원 배열인데
두개의 대괄호로 인덱스에 접근함을 볼 수 있습니다.
첫번째 면의 두번째 행의 첫번째 주소에 접근하기 위해서는 대괄호를 두개만 사용하여
iden[1][2]로 작성해주시면 됩니다.
'C언어 > 구조체' 카테고리의 다른 글
C언어 구조체를 이용한 복소수(Complex Number) 덧셈과 곱셈 프로그램 (0) | 2015.02.17 |
---|---|
C언어 구조체 배열을 이용한 간단한 도서관리 프로그램 (0) | 2015.02.16 |
C언어 구조체연산 (0) | 2015.02.08 |
C언어 구조체를 swap하기(구조체를 가리키는 포인터 변수) (0) | 2015.02.06 |
C언어 예제를 통한 구조체 사용 방법을 알아보자 (0) | 2015.02.05 |