8. 배열.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Chapter 12 배열. 2 배열  의미  배열은 연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조로 그 사용이 간편  배열은 동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조 일반 변수가 단독주택이라면 배열은 아파트  크기  배열의.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
컴퓨터 개론 및 실습 강의 6 서울대학교 기계항공공학부 담당 : 김 찬 중.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
Part 11 문자열 ©우균, 창병모 ©우균, 창병모.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 7. 조건문.
제 9 장 구조체와 공용체.
Chapter 09 배열과 포인터.
3. printf()와 데이터 형식.
5장 배열 작성자 : 변재현.
7. while 문의 흐름 제어.
Chapter 04 C 연산자의 이해.
5장. 참조 타입.
Heesang kim PL/SQL 3 Heesang kim.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
6장. printf와 scanf 함수에 대한 고찰
-Part3- 제2장 문자열 표준 함수와 기타 표준 함수
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
C#.
13. 연산자 오버로딩.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
5장 배열과 문자열 C 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
2nd day Indexing and Slicing
데이터 동적 할당 Collection class.
제 15 강 문자와 코드 shcho.pe.kr.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Chapter 10 데이터 검색1.
TVM ver 최종보고서
구조체(struct)와 공용체(union)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
17장. 문자열 01_ 문자열 사용의 기본 02_ 문자열의 사용.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
김선균 컴퓨터 프로그래밍 기초 - 12th : 문자열 - 김선균
어서와 C언어는 처음이지 제21장.
윈도우에서의 유니코드.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

8. 배열

이 장에서 다룰 내용 배열의 이해 1. 2. 배열과 문자열 2차원 배열 3.

01_배열의 이해 배열의 개념 여러 개의 변수를 나란히 연결하는 개념 박스(변수)를 한 줄로 붙이고, 박스의 이름(aa)을 지정 각각의 박스는 aa[0], aa[1], … 과 같이 첨자를 붙임

[기본예제 8-1] 여러 개의 변수 값을 선언하여 출력하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b, c, d; 06 int hap = 0; 07 08 printf("1번째숫자를입력하세요: "); 09 scanf("%d", &a); 10 printf("2번째숫자를입력하세요: "); 11 scanf("%d", &b); 12 printf("3번째숫자를입력하세요: "); 13 scanf("%d", &c); 14 printf("4번째숫자를입력하세요: "); 15 scanf("%d", &d); 16 17 hap = a + b + c + d; 각각의 입력 변수와 합계 변수 선언 숫자 4개 입력 입력받은 숫자 더하기

[기본예제 8-1] 여러 개의 변수 값을 선언하여 출력하는 예 18 19 printf(" 합계==> %d \n", hap); 20 } 출력

01_배열의 이해 배열의 선언 데이터형 배열이름[개수]; int aa[4]; int a, b, c, d; a 사용 b 사용 4개의 변수를 담은 정수형 배열 선언 데이터형 배열이름[개수]; int aa[4]; ① 변수 선언(배열 미사용) ② 배열 선언(배열 사용) int a, b, c, d; a 사용 b 사용 c 사용 d 사용 int aa[4]; aa[0] 사용 aa[1] 사용 aa[2] 사용 aa[3] 사용

[기본예제 8-2] 배열에 값을 선언하여 출력하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[4]; 06 int hap; 07 08 printf("1번째 숫자를 입력하세요 : "); 09 scanf("%d", &aa[0]); 10 printf("2번째 숫자를 입력하세요 : "); 11 scanf("%d", &aa[1]); 12 printf("3번째 숫자를 입력하세요 : "); 13 scanf("%d", &aa[2]); 14 printf("4번째 숫자를 입력하세요 : "); 15 scanf("%d", &aa[3]); 16 정수형 배열과 변수 선언 배열 aa[0]~aa[3]에 숫자 4개 입력

[기본예제 8-2] 배열에 값을 선언하여 출력하는 예 17 hap = aa[0] + aa[1] + aa[2] + aa[3]; 18 19 printf(" 합계 ==> %d \n", hap); 20 } 배열에 저장된 숫자 더하기 출력

01_배열의 이해 배열의 활용 범위 첨자의 특성과 반복문 결합하는 형태  효율성 극대화

[응용예제 8-3] for 문으로 배열의 첨자를 활용하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[4]; 06 int hap=0; 07 int i; 08 09 for (i=0 ; i<=3 ; i++) 10 { 11 printf("%d번째 숫자를 입력하세요 : ", i+1 ); 12 scanf("%d", [ ① ] ); 13 } 14 15 hap = aa[0] + aa[1] + aa[2] + aa[3]; 16 17 printf(" 합계 ==> %d \n", hap); 18 } 배열과 합계 변수, 첨자 선언 aa[0]~aa[3] 배열에 숫자 네 개를 입력받음 &aa[i] 배열에 저장된 네 숫자 더하기 출력

01_배열의 이해 15행 수정 수동 덧셈  숫자 개수에 맞춘 자동 덧셈으로 수정하기 for (i=0; i<3 ; i++) { hap = hap + a[i]; }

01_배열의 이해 배열의 초기화 다양한 초기화 예 배열을 정의하는 동시에 값을 대입하는 것 선언과 초기화가 잘 된 경우 || 초기화를 하지 않고, 선언만 한 경우 int aa[4] = {100, 200, 300, 400}; int aa[ ] = {100, 200, 300, 400}; int aa[4];

01_배열의 이해 배열의 개수보다 초기화 값의 개수가 적은 경우 || 배열의 개수보다 초기화 값의 개수가 많은 경우 100개의 배열을 0으로 초기화하는 경우 int aa[4] = {100, 200}; int aa[4] = {100, 200, 0, 0}; int aa[4] = {100, 200 }; int aa[4] = {100,200,300,400,500}; int aa[1000] = {0};

[기본예제 8-4] 배열의 초기화 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[4] = {100, 200, 300, 400}; 06 int bb[] = {100, 200, 300, 400}; 07 int cc[4] = {100, 200}; 08 int dd[4] = {0}; 09 int i; 10 11 for (i=0 ; i<=3 ; i++) 12 printf("aa[%d]==>%d\t", i, aa[i] ); 13 printf("\n"); 14 15 for (i=0 ; i<=3 ; i++) 16 printf("bb[%d]==>%d\t", i, bb[i] ); 개수지정 + 초기화 개수 미지정 + 초기화 일부만 초기화 전체를 0으로 초기화 4회 반복하며 배열 aa[0]~aa[3] 값 출력 4회 반복하며 배열 bb[0]~bb[3] 값 출력

[기본예제 8-4] 배열의 초기화 예 ① 17 printf("\n"); 18 19 for (i=0 ; i<=3 ; i++) 20 printf("cc[%d]==>%d\t", i, cc[i] ); 21 printf("\n"); 22 23 for (i=0 ; i<=3 ; i++) 24 printf("dd[%d]==>%d\t", i, dd[i] ); 25 printf("\n"); 26 } 4회 반복하며 배열 cc[0]~cc[3] 값 출력 4회 반복하며 배열 dd[0]~dd[3] 값 출력

01_배열의 이해 for 문을 사용한 배열 초기화 aa[100]에 2의 배수로 초기화하기 bb[100]에 역순으로 넣기

[응용예제 8-5] 배열의 초기화 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[100], bb[100]; 06 int i; 07 08 for (i=0 ; i<100 ; i++) 09 { 10 aa[i] = i * 2; 11 } 12 13 for (i=0 ; i<100 ; i++) 14 { 15 [ ① ] = aa[99-i]; 16 } 17 18 printf("bb[0]는 %d, bb[99]는 %d 입력됨\n", bb[0], bb[99]); 19 } 배열 aa, bb 선언 0~99까지 100번 반복하며 aa[i]에 2의 배수 대입 0~99까지 100번 반복하며 bb[i]에 aa[99-i] 대입 bb[i] 출력

01_배열의 이해 배열의 크기 알아내기 int aa[4] 배열의 개수(크기) 구하기 선언한 배열의 데이터형 크기(4byte)로 나누면 배열의크기(요소개수) = sizeof(전체배열이름) / sizeof(배열의데이터타입); 배열의크기(요소개수) = sizeof(aa) / sizeof(int);

[기본예제 8-6] 배열의 크기를 계산하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[] = {10, 20, 30, 40, 50}; 06 int count; 07 08 count = sizeof(aa) / sizeof(int); 09 10 printf("배열 aa[]의 요소의 개수는 %d 입니다.\n", count); 11 } 배열 선언, 개수는 모름 배열의 크기를 저장하는 변수 배열의 크기 계산 출력

02_배열과 문자열 정수형 배열과 문자열 배열

[기본예제 8-7] 문자열 선언과 출력 01 #include <stdio.h> 02 03 int main() 04 { 05 char ss[8] = "Basic-C"; 06 int i; 07 08 ss[5] = '#'; 09 10 for(i=0 ; i<8 ; i++) 11 { 12 printf("ss[%d] ==> %c \n", i, ss[i]); 13 } 14 15 printf("문자열 배열 ss ==> %s \n", ss); 16 } 크기가 8인 문자형 배열 선언 및 초기화 6번째 문자를 바꿈 8번 반복하면서 배열 ss의 각 문자 출력 배열 ss의 전체 문자열 출력

02_배열과 문자열 문자열 조작 과정

[응용예제 8-8] 문자열 순서를 뒤집어 출력하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 char ss[5] = "abcd"; 06 char tt[5]; 07 int i; 08 09 for(i=0 ; i<4 ; i++) 10 { 11 tt[i] = [ ① ] ; 12 } 13 tt[4] = '\0'; 14 15 printf("거꾸로 출력한 결과==> %s \n", tt); 16 } 크기 5의 문자형 배열 변환할 문자형 배열 첨자 변수 선언 0~3까지 4회 반복하며 각 배열에 문자를 거꾸로 대입 tt[0] = ss[3] tt[1] = ss[2] tt[2] = ss[1] tt[3] = ss[0] ss[3-i] 마지막에 널 문자 삽입 순서가 뒤집힌 문자열 출력

02_배열과 문자열 문자열 처리 함수 문자열의 길이를 알려주는 함수  strlen( ) <string.h> 파일을 포함시켜야 사용 가능 문자열의 길이를 알려주는 함수  strlen( ) 널 문자 제외

[기본예제 8-9] strlen() 사용 예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[] = "XYZ"; 07 int len; 08 09 len = strlen(ss); 10 11 printf("문자열 \"%s\"의 길이 ==> %d \n", ss, len); 12 } 문자열 배열, 길이 변수 선언 배열 ss의 길이 구하기 출력

02_배열과 문자열 문자열을 복사하는 함수  strcpy() 이미 선언된 문자열 배열에 다른 문자열을 대입하고 싶을 때 사용 널 문자도 함께 복사됨

[기본예제 8-10] strcpy() 사용 예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[4]; 07 08 strcpy(ss, “XYZ"); 09 10 printf(“문자열 ss의 내용 ==> %s \n", ss); 11 } 문자열 배열 선언 배열 ss에 문자열 복사 출력

02_배열과 문자열 두 문자열을 이어주는 함수  strcat() 두 문자열을 이어주는 함수로, 널 문자 자리부터 시작 strcat(A, B)의 경우, A에는 문자형 배열이 와야 함

[기본예제 8-11] strcat() 사용 예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[7] = "XYZ"; 07 08 strcat(ss, "ABC"); 09 10 printf("이어진 문자열 ss의 내용 ==> %s \n", ss); 11 } 문자열 배열 선언과 함께 초기값 ‘XYZ’ 입력 배열 ss에 ‘ABC’를 연결한 후 다시 배열 ss에 넣음 출력

02_배열과 문자열 두 문자열을 비교하는 함수  strcmp() strcmp(A, B)일 때, A-B의 결과를 돌려줌

[기본예제 8-12] strcmp() 사용 예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[] = "XYZ"; 07 char tt[] = "xyz"; 08 int r; 09 10 r = strcmp(ss, tt); 11 12 printf("두 문자열의 비교결과 ==> %d \n", r); 13 } 문자열 배열 ss와 tt의 선언 및 초기화 두 문자열을 비교한 결과를 r에 대입 출력

02_배열과 문자열 문자열을 입력받는 함수  gets() 문자열을 출력하는 함수  puts() scanf()와 비슷한 기능으로, 문자열 입력 시 상대적으로 유용 Enter 키를 입력할 때까지 ss에 문자열을 받아들임 문자열을 출력하는 함수  puts() printf()와 비슷한 기능으로, 문자열 출력 시 상대적으로 유용 ‘\n’이 없어도 출력 후에 자동으로 줄이 넘어감 char ss[10]; gets(ss); char ss[10]= “XYZ”; puts(ss);

[응용예제 8-13] 문자열 입출력 함수 gets(), puts() 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[20]; 07 char tt[20]; 08 int r1, r2; 09 10 puts("첫번째 문자열을 입력하세요."); 11 gets(ss); 12 13 puts("두번째 문자열을 입력하세요."); 14 [ ① ] ; 15 문자형 배열 ss, tt 선언 첫 번째 문자열과 두 번째 문자열 입력 gets(tt)

[응용예제 8-13] 문자열 입출력 함수 gets(), puts() 16 r1 = strlen(ss); 17 r2 = strlen(tt); 18 19 printf("첫번째 문자열의 길이 ==> %d \n", r1); 20 printf("두번째 문자열의 길이 ==> %d \n", r2); 21 22 if ( [ ② ] == 0) 23 puts("두 문자열의 길이가 같습니다.\n"); 24 else 25 puts ("두 문자열의 길이가 다릅니다.\n"); 26 } 배열 ss와 tt의 문자열 길이 저장 각 배열의 문자열 길이 출력 strcmp(ss, tt) ss와 tt의 문자열을 비교하여 두 값이 같은지 다른지 판단

03_2차원 배열 2차원 배열의 기본 개념 1차원 배열을 여러 개 연결한 것 두 개의 첨자 사용 ① 1차원 배열 : int aa[행] ② 2차원 배열 : int aa[행][열]

[기본예제 8-14] 2차원 배열의 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[3][4]; 06 07 aa[0][0] = 1 ; aa[0][1] = 2 ; aa[0][2] = 3 ; aa[0][3] = 4; 08 aa[1][0] = 5 ; aa[1][1] = 6 ; aa[1][2] = 7 ; aa[1][3] = 8; 09 aa[2][0] = 9 ; aa[2][1] =10 ; aa[2][2] =11 ; aa[2][3] =12; 10 11 printf("aa[0][0]부터 aa[2][3]까지 출력 \n"); 12 13 printf("%3d %3d %3d %3d\n", aa[0][0], aa[0][1], aa[0][2], a[0][3]); 14 printf("%3d %3d %3d %3d\n", aa[1][0], aa[1][1], aa[1][2], a[1][3]); 15 printf("%3d %3d %3d %3d\n", aa[2][0], aa[2][1], aa[2][2], a[2][3]); 16 } 2차원 배열 선언 각 요소에 값 대입 a[0]행 출력 a[1]행 출력 a[2]행 출력

[응용예제 8-15] 2차원 배열의 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[3][4]; 06 int i, k; 07 08 int val=1; 09 10 for( i=0 ; i<3 ; i++) 11 { 12 for([ ① ] ) 13 { 14 aa[i][k] = val; 15 val++; 16 } 17 } 2차원 배열과 첨자 변수 선언 배열에 들어갈 값 초기화 3회 반복하며 행 단위 변경 k=0; k<4 ; k++ 4회 반복하며 열 단위 조정 val 값 입력 후 val 값을 1 증가시킴

[응용예제 8-15] 2차원 배열의 사용 예 ② 18 19 printf("aa[0][0]부터 aa[2][3]까지 출력 \n"); 20 21 for( i=0 ; i<3 ; i++) 22 { 23 for( k=0; k<4 ; k++) 24 { 25 printf("%3d ", [ ② ] ); 26 } 27 printf("\n"); 28 } 29 } 배열에 들어갈 값 초기화 4회 반복하며 열 단위 변경 a[0][0]~a[2][3]까지 출력 aa[i][k] 첫 행 출력 후 행 넘기기

03_2차원 배열 2차원 배열의 초기화 배열을 정의하는 동시에 값 초기화하기

[기본예제 8-16] 2차원 배열의 초기화 01 #include <stdio.h> 02 03 int main() 04 { 05 int aa[3][4] = { 06 { 1, 2, 3, 4 } , 07 { 5, 6, 7, 8 } , 08 { 9,10,11,12 } 09 }; 10 11 int i, k; 12 printf("aa[0][0]부터 aa[2][3]까지 출력 \n"); 13 14 for( i=0 ; i<3 ; i++) 15 { 배열 초기화 aa[0][0]~aa[0][3] aa[1][0]~aa[1][3] aa[2][0]~aa[2][3] 3행 4열의 배열에 저장된 값 출력

[기본예제 8-16] 2차원 배열의 초기화 16 for( k=0 ; k<4 ; k++) 17 { 17 { 18 printf("%3d", aa[i][k]); 19 } 20 printf("\n"); 21 } 22 }

03_2차원 배열 3차원 이상의 배열 2차원 배열 위에 또 다른 2차원 배열을 쌓은 것

03_2차원 배열 3차원 배열의 초기화 2차원 배열의 초기화를 한번 더 하는 개념 컴마로 분리하고, 전체를 다시 블록으로 묶으면 됨

[예제모음_19] 입력된 문자열을 거꾸로 출력 예제설명 문자열 배열을 이용해서 입력된 문자열을 거꾸로 출력하는 프로그램 실행결과

예제모음_19 소스 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char ss[100]; 07 char tt[100]; 08 int count, i; 09 10 printf("문자열을 입력하세요 : "); 11 scanf("%s", ss); 12 13 count = strlen(ss); 14 문자형 배열 ss, tt 선언 정수형 변수 count, i 선언 문자열 입력받기 문자열 개수 구하기

예제모음_19 소스 15 for(i=0 ; i<count ; i++) 16 { 16 { 17 tt[i] = ss[count-(i+1)]; 18 } 19 tt[count] = '\0'; 20 21 printf("내용을 거꾸로 출력 ==> %s \n", tt); 22 } 문자열 개수만큼 반복하며 tt 배열에 문자열을 거꾸로 저장 마지막에 널 문자 입력 배열 tt 내용 출력

[예제모음_20] 대문자와 소문자의 변환 예제설명 입력된 문자열이 대문자면 소문자로, 소문자면 대문자로 변환하고, 그 외의 문자는 그대로 출력하는 프로그램이다. 실행결과

예제모음_20 소스 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char in[50], out[50]; 07 int i, len; 08 int diff = 'a' - 'A'; 09 10 printf(" 문자 입력 : "); 11 gets(in); 12 13 len = strlen(in); 14 문자형 배열 in, out 선언 정수형 변수 i, len 선언 소문자와 대문자의 차이값을 diff에 저장 문자열 입력받기 입력한 문자열의 길이 구하기

예제모음_20 소스 15 for(i=0 ; i<len ; i++) 16 { 16 { 17 if ( ('A' <= in[i]) && (in[i] <= 'Z')) 18 out[i] = in[i] + diff; 19 else if ( ('a' <= in[i]) && (in[i] <= 'z')) 20 out[i] = in[i] - diff; 21 else 22 out[i] = in[i]; 23 } 24 out[i] = '\0'; 25 26 printf(" 변환된 문자 =>%s \n", out); 27 } 문자열 길이만큼 반복 문자가 ‘A’~‘Z’ 사이면 대소문자 차이만큼 더함 문자가 ‘a’~‘z’ 사이면 대소문자 차이만큼 더함 영문자가 아니면 그대로 둠 마지막 널 문자 넣어줌 바뀐 문자열 출력

[예제모음_21] 구구단의 결과를 2차원 배열에 저장 예제설명 구구단의 결과를 2차원 배열에 저장한 후에 출력하는 프로그램이다. 실행결과

예제모음_21 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int gugu[9][9]; 06 int i, k; 07 08 for(i=0 ; i<9 ; i++) 09 for (k=0 ; k<9 ; k++) 10 gugu[i][k] = (i+1) * (k+1) ; 11 12 for(i=0 ; i<9 ; i++) 13 { 14 for (k=0 ; k<9 ; k++) 15 { 16 printf("%dX%d=%2d", k+1, i+1, gugu[i][k]); 17 } 18 printf("\n"); 19 } 20 } 문자열 배열 gugu와 첨자 변수 i, k 선언 i가 0~8까지 반복됨 k가 0~8까지 반복하면서 곱한 결과를 배열에 저장(1~9까지 곱한 결과) i가 0~8까지 반복됨 k가 0~8까지 반복하면서 해당 배열 요소 출력 출력 후 다음 행으로 커서 이동

[예제모음_22] 문자열 내 특정 문자의 변환 실행결과 예제설명 문자열을 입력받고, 변환될 문자와 변환할 문자를 입력받아 최초의 문자열에서 해당 문자를 변환하는 프로그램이다. 실행결과

예제모음_22 소스 01 #include <stdio.h> 02 #include <string.h> 03 04 int main() 05 { 06 char str[100]; 07 char ch1, ch2; 08 int i; 09 10 printf("여러 글자를 입력 : "); 11 gets(str); 12 13 printf("변환될 문자와 변환할 문자 : "); 14 scanf("%c %c", &ch1, &ch2); 15 문자열 배열 str 선언 문자형 변수와 정수형 변수 선언 문자열 입력받기 바뀔 문자와 바꿀 문자 입력

예제모음_22 소스 16 for(i=0 ; i<strlen(str) ; i++) 17 { 17 { 18 if (str[i] == ch1) 19 str[i] = ch2; 20 } 21 22 printf("변환된 결과 ==> %s \n", str); 23 } 문자열의 길이만큼 반복하면서 해당 문자가 바뀔 문자와 같다면 지정한 문자로 교체함 결과 출력

요약 배열의 기본 배열&문자열 문자열 함수 배열은 변수 여러 개를 나란히 나열해 놓은 개념 여러 개의 변수를 공통된 변수 이름으로 사용(첨자만 변경) 배열의 첨자는 0부터 시작 for 문과 같은 반복문과 함께 사용 배열의 개수를 알아내려면 sizeof() 함수 사용 배열의 기본 여러 개의 문자를 나열한 문자열은 배열의 형태로 표현 가능 문자열 배열의 크기 : ‘문자열 길이 + 1’ 문자열의 끝을 나타내는 ‘\0’을 고려 배열&문자열 문자열 함수 종류 기능 strlen() 문자열의 길이를 알려준다. strcpy() 문자열을 복사한다. strcat() 두 문자열을 이어준다. strcmp() 두 문자열을 비교한다. gets(), puts() 문자열을 키보드로 입력하거나 화면에 출력한다.

요약 2차원 배열 행과 열로 만든 배열, 2차원 배열의 개수 = ‘행수 × 열수’ 선언과 동시에 2차원 배열의 초기화하기 int aa[3][4]={ { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12};