목차
[1] 배열의 뜻
[2] 1차원 배열
[3] 2차원 배열
[4] 3차원 배열
[5] 배열을 이용한 선택정렬
[6] 배열을 이용한 버블정렬
[7] 문자의 1차원 배열
[8] 문자형의 2차원 배열
[9] 문자형 2차원 배열과 포인터
[10] 문자열
[11] 배열을 이용한 문자열
[2] 1차원 배열
[3] 2차원 배열
[4] 3차원 배열
[5] 배열을 이용한 선택정렬
[6] 배열을 이용한 버블정렬
[7] 문자의 1차원 배열
[8] 문자형의 2차원 배열
[9] 문자형 2차원 배열과 포인터
[10] 문자열
[11] 배열을 이용한 문자열
본문내용
배열로 만들 때는 int를 사용해도 된다.
【 8】 문자형의 2차원 배열
<예제1> 오른쪽 데이터를 한 문자씩 2차원 배열에 대입하여 표시하라.
S
e
o
u
l
S
t
a
n
d
T
o
u
c
h
#include
static char a[][5]={\'S\',\'e\',\'o\',\'u\',\'l\',\'S\',\'t\',\'a\',\'n\',\'d\',\'T\',\'o\',\'u\',\'c\',\'h\'};
/* 배열 a[][4]를 아래의 for가 마지막 하나더 읽기 때문에 a[][5]로 선언한다*/
main(){
int i;
for(i=0; i<=2; ++i)
printf(\"%c %c %c %c %c \\n\",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
getch();
}
【 9】 문자열2차원배열과 포인터
<예제2> 아래의 3문자열을 한 문자씩 a[3][8]에 대입한 다음, 함수에 2차원 배열을 주어 3문자열을 표시하라
BASIC□□\\0
FORTRAN\\0
COBOL□□\\0
#include
main(){
static char a[3][8]={\'B\',\'A\',\'S\',\'I\',\'C\',\' \',\' \',\'\\0\',\'F\',\'O\',\'R\',\'T\',\'R\',\'A\',\'N\',\'\\0\',
\'C\',\'O\',\'B\',\'O\',\'L\',\' \',\' \',\'\\0\'};
// \' \'(공란)을 한칸씩 비워야 empty character constant 에러가 나지 않는다.
f(a);
getch();
}
f(e) char (*e)[8];{ /*char *e[8]이고 아래 printf()에서 e이면 BASIC만 나타난다*/
int i;
for(i=0;i<=2;i++)
printf(\"%s\\n\",e[i]);
}
<결과> BASIC
FORTRAN
COBOL
<풀이>1) f(e)함수에서 char *e[8]이면 한자리 배열 e[0],e[1],...e[7]을 나타내므로
char (*e)[8]로 하여 두자리 배열 e[0][8], e[1][8], e[2][8]을 나타낸다.
2) main()함수에서 a[3][8]을 선언한 것은 문자배열 \"3개+null\", \"각8자+null\"이기 때문이다
【10】 문자열
- 문자열을 읽어들이는 서식지정자는 %s 이다.
- 배열의 문자열을 다른 배열에 대입하는데에는 strcpy()를 사용한다.
(strcpy : 문자열을 복사시키는 함수)
- 배열을 사용한 문자열 판독에는 scanf()안의 변수명 앞에 &를 붙이지 않는다.
(&는 포인터를 나타내지만 여기서는 문자 하나하나를 배열로 읽어낸다.)
- strcpy()는 복사후의 배열과 복사전 원래의 배열의 두가지 인수를 가진다.
char dest[80];
char source[80];
strcpy(dest, source);
출력
설계
아래에 30자 정도 이내의 문자열을 입력하시오.
△△△△△△△△△△△
문자열1을 문자열2로 복사한다.
문자열2는 △△△△△△△△△△△
(답)
#include
main(){
char string1[80], string2[80]; clrscr();
printf(\"아래에 30자 정도 이내의 문자열을 입력하시오.\\n\");
scanf(\"%s\",string1);
printf(\"문자열1을 문자열2로 복사한다\\n\");
strcpy(string2, string1);
printf(\"문자열1은 %s \\n\",string1);
printf(\"문자열2은 %s \\n\",string2);
getch();
}
<결과> 아래에 30자 정도 이내의 문자열을 입력하시오.
바람따라 떠도는 나그네
문자열1을 문자열2로 복사한다
문자열1은 바람따라
문자열2은 바람따라
【 11】배열을 이용한 문자열
[1] 배열을 이용한 문자열
<예제> \"basic\"을 배열변수 a[6]에 대입한 후 전체 문자열을 표시한 다음 한 문자씩 띄어서
표시하라.
#include
main(){
char a[6]={\"basic\"}; /*a[5]로 하면 basic다음에 이상한 글자가 나타난다. a[4]에 2를 더한다*/
printf(\"%s \\n\",a);
printf(\"%c %c %c %c %c \\n\",a[0],a[1],a[2],a[3],a[4]);
getch();
}
<결과> basic
b a s i c
[2] 복수 문자열을 배열에 대입
<예제> basic, c, fortran, cobol 의 4문자열을 배열 a에 대입하여 표시하라.
출력 설계
basic
c
fortran
cobol
#include
static char a[][8]={\"basic\",\"c\", \"fortran\", \"cobol\"}; /*[6]+2=[8]*/
main(){
int i;
for(i=0; i<=3;i++)
printf(\"%s\\n\",a[i]);
getch();
}
[3] 1문자를 조합한 문자열
<예제> basic, c, fortran, cobol 의 4문자의 각문자를 하나씩 배열에 대입하고
각 단어 끝에 \'\\0\'을 붙여 문자열로서 꺼내어 표시하라.
#include
main(){
char a[4][8]; /*fortran이 a[3][6]이지만 앞에는 +1,뒤에는 \'\\0\'과 +1를 하여 배열*/
int i;
a[0][0]=\'b\',a[0][1]=\'a\',a[0][2]=\'s\',a[0][3]=\'i\',a[0][4]=\'c\',a[0][5]=\' \',
a[0][6]=\' \',a[0][7]=\'\\0\';
a[1][0]=\'c\',a[1][1]=\' \',a[1][2]=\' \',a[1][3]=\' \',a[1][4]=\' \',a[1][5]=\' \',
a[1][6]=\' \',a[1][7]=\'\\0\';
a[2][0]=\'f\',a[2][1]=\'o\',a[2][2]=\'r\',a[2][3]=\'t\',a[2][4]=\'r\',a[2][5]=\'a\',
a[2][6]=\'n\',a[2][7]=\'\\0\';
a[3][0]=\'c\',a[3][1]=\'o\',a[3][2]=\'b\',a[3][3]=\'o\',a[3][4]=\'l\',a[3][5]=\' \',
a[3][6]=\' \',a[3][7]=\'\\0\';
for(i=0;i<=3;i++)
printf(\"%s\\n\",a[i]);
getch();
}
<결과> basic
c
fortran
cobol
【 8】 문자형의 2차원 배열
<예제1> 오른쪽 데이터를 한 문자씩 2차원 배열에 대입하여 표시하라.
S
e
o
u
l
S
t
a
n
d
T
o
u
c
h
#include
static char a[][5]={\'S\',\'e\',\'o\',\'u\',\'l\',\'S\',\'t\',\'a\',\'n\',\'d\',\'T\',\'o\',\'u\',\'c\',\'h\'};
/* 배열 a[][4]를 아래의 for가 마지막 하나더 읽기 때문에 a[][5]로 선언한다*/
main(){
int i;
for(i=0; i<=2; ++i)
printf(\"%c %c %c %c %c \\n\",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
getch();
}
【 9】 문자열2차원배열과 포인터
<예제2> 아래의 3문자열을 한 문자씩 a[3][8]에 대입한 다음, 함수에 2차원 배열을 주어 3문자열을 표시하라
BASIC□□\\0
FORTRAN\\0
COBOL□□\\0
#include
main(){
static char a[3][8]={\'B\',\'A\',\'S\',\'I\',\'C\',\' \',\' \',\'\\0\',\'F\',\'O\',\'R\',\'T\',\'R\',\'A\',\'N\',\'\\0\',
\'C\',\'O\',\'B\',\'O\',\'L\',\' \',\' \',\'\\0\'};
// \' \'(공란)을 한칸씩 비워야 empty character constant 에러가 나지 않는다.
f(a);
getch();
}
f(e) char (*e)[8];{ /*char *e[8]이고 아래 printf()에서 e이면 BASIC만 나타난다*/
int i;
for(i=0;i<=2;i++)
printf(\"%s\\n\",e[i]);
}
<결과> BASIC
FORTRAN
COBOL
<풀이>1) f(e)함수에서 char *e[8]이면 한자리 배열 e[0],e[1],...e[7]을 나타내므로
char (*e)[8]로 하여 두자리 배열 e[0][8], e[1][8], e[2][8]을 나타낸다.
2) main()함수에서 a[3][8]을 선언한 것은 문자배열 \"3개+null\", \"각8자+null\"이기 때문이다
【10】 문자열
- 문자열을 읽어들이는 서식지정자는 %s 이다.
- 배열의 문자열을 다른 배열에 대입하는데에는 strcpy()를 사용한다.
(strcpy : 문자열을 복사시키는 함수)
- 배열을 사용한 문자열 판독에는 scanf()안의 변수명 앞에 &를 붙이지 않는다.
(&는 포인터를 나타내지만 여기서는 문자 하나하나를 배열로 읽어낸다.)
- strcpy()는 복사후의 배열과 복사전 원래의 배열의 두가지 인수를 가진다.
char dest[80];
char source[80];
strcpy(dest, source);
출력
설계
아래에 30자 정도 이내의 문자열을 입력하시오.
△△△△△△△△△△△
문자열1을 문자열2로 복사한다.
문자열2는 △△△△△△△△△△△
(답)
#include
main(){
char string1[80], string2[80]; clrscr();
printf(\"아래에 30자 정도 이내의 문자열을 입력하시오.\\n\");
scanf(\"%s\",string1);
printf(\"문자열1을 문자열2로 복사한다\\n\");
strcpy(string2, string1);
printf(\"문자열1은 %s \\n\",string1);
printf(\"문자열2은 %s \\n\",string2);
getch();
}
<결과> 아래에 30자 정도 이내의 문자열을 입력하시오.
바람따라 떠도는 나그네
문자열1을 문자열2로 복사한다
문자열1은 바람따라
문자열2은 바람따라
【 11】배열을 이용한 문자열
[1] 배열을 이용한 문자열
<예제> \"basic\"을 배열변수 a[6]에 대입한 후 전체 문자열을 표시한 다음 한 문자씩 띄어서
표시하라.
#include
main(){
char a[6]={\"basic\"}; /*a[5]로 하면 basic다음에 이상한 글자가 나타난다. a[4]에 2를 더한다*/
printf(\"%s \\n\",a);
printf(\"%c %c %c %c %c \\n\",a[0],a[1],a[2],a[3],a[4]);
getch();
}
<결과> basic
b a s i c
[2] 복수 문자열을 배열에 대입
<예제> basic, c, fortran, cobol 의 4문자열을 배열 a에 대입하여 표시하라.
출력 설계
basic
c
fortran
cobol
#include
static char a[][8]={\"basic\",\"c\", \"fortran\", \"cobol\"}; /*[6]+2=[8]*/
main(){
int i;
for(i=0; i<=3;i++)
printf(\"%s\\n\",a[i]);
getch();
}
[3] 1문자를 조합한 문자열
<예제> basic, c, fortran, cobol 의 4문자의 각문자를 하나씩 배열에 대입하고
각 단어 끝에 \'\\0\'을 붙여 문자열로서 꺼내어 표시하라.
#include
main(){
char a[4][8]; /*fortran이 a[3][6]이지만 앞에는 +1,뒤에는 \'\\0\'과 +1를 하여 배열*/
int i;
a[0][0]=\'b\',a[0][1]=\'a\',a[0][2]=\'s\',a[0][3]=\'i\',a[0][4]=\'c\',a[0][5]=\' \',
a[0][6]=\' \',a[0][7]=\'\\0\';
a[1][0]=\'c\',a[1][1]=\' \',a[1][2]=\' \',a[1][3]=\' \',a[1][4]=\' \',a[1][5]=\' \',
a[1][6]=\' \',a[1][7]=\'\\0\';
a[2][0]=\'f\',a[2][1]=\'o\',a[2][2]=\'r\',a[2][3]=\'t\',a[2][4]=\'r\',a[2][5]=\'a\',
a[2][6]=\'n\',a[2][7]=\'\\0\';
a[3][0]=\'c\',a[3][1]=\'o\',a[3][2]=\'b\',a[3][3]=\'o\',a[3][4]=\'l\',a[3][5]=\' \',
a[3][6]=\' \',a[3][7]=\'\\0\';
for(i=0;i<=3;i++)
printf(\"%s\\n\",a[i]);
getch();
}
<결과> basic
c
fortran
cobol
추천자료
간호진단 60개 (간호진단 간호계획 간호중재 평가 계획 )
각 영역별 검사도구 요약표 (지능, 언어, 학습, 정서 및 행동, 지각 및 운동, 적응행동, 영유...
2008년 1학기 시뮬레이션 중간시험과제물 C형(복수창구의 대기행렬)
2007년 1학기 시뮬레이션 중간시험과제물 C형
2010년 1학기 시뮬레이션 중간시험과제물 C형(복수창구의 대기행렬시스템)
c++ vector와 matrix class 구현
coutte flow의 이해 및 C프로그래밍 구현 (전산 유체역학 Term Project)
[인터넷 마케팅 전략] 6C전략, 4A전략, 4P전략 및 인터넷마케팅 성공전략
공학프로그래밍 설계과제 - C와 MATLAB을 사용한 B-mode 영상
2017년 1학기 C프로그래밍 교재전범위 핵심요약노트
2017년 1학기 C프로그래밍 기말시험 핵심체크
2017년 동계계절시험 C프로그래밍 시험범위 핵심체크
2018년 1학기 C프로그래밍 기말시험 핵심체크
소개글