PowerPoint 프레젠테이션

Similar documents
Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

YRRZBRRLMCEQ.hwp

PowerPoint 프레젠테이션

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft PowerPoint - 10장 문자열 pptx

02장.배열과 클래스

금오공대 컴퓨터공학전공 강의자료

11장 포인터

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap10-함수의활용.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

Microsoft PowerPoint - ch07 - 포인터 pm0415

OCW_C언어 기초

중간고사

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

C 언어 프로그래밊 과제 풀이

PowerPoint 프레젠테이션

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

13 주차문자열의표현과입출력

Microsoft PowerPoint - 7장 배열 pptx

PowerPoint Presentation

OCW_C언어 기초

금오공대 컴퓨터공학전공 강의자료

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

untitled

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint Presentation

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint 프레젠테이션

설계란 무엇인가?

untitled

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap06-8 [호환 모드]

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Data Structure

슬라이드 1

untitled

Microsoft PowerPoint - 제9강 문자열

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap06-8.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap04-연산자.pptx


Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - 2장 변수와 자료형 pptx

PowerPoint Presentation

<4D F736F F F696E74202D D20B9AEC0DABFAD2C20BDBAC6AEB8B2B0FA20C6C4C0CF20C0D4C3E2B7C2>

윤성우의 열혈 TCP/IP 소켓 프로그래밊

설계란 무엇인가?

Microsoft PowerPoint - chap-12.pptx

KNK_C_05_Pointers_Arrays_structures_summary_v02

이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하고있다. 이번장에서는 C 에서의문자열처리방법에대하여자세히살펴볼것입니다. 2

C 프로그램의 기본

Microsoft PowerPoint - C++ 5 .pptx

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Visual Basic 반복문

11장 포인터

PowerPoint 프레젠테이션

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

Microsoft PowerPoint - Chapter_08.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter_07.pptx

Microsoft PowerPoint - Java7.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

11장 포인터

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

11장 포인터

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

Chapter_06

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

Microsoft PowerPoint - [CPI16] Lecture 10 - 문자열.pptx

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

ch15

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap06.ppt

Microsoft PowerPoint - Chapter_04.pptx

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

ABC 6장

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

Transcription:

Chapter 09 배열...

1. 배열의이해 2. 배열과문자열 3. 2 차원배열

1. 배열의이해 배열을사용하는이유 배열의개념 여러개의변수를나란히연결하는개념 박스 ( 변수 ) 를한줄로붙이고, 박스의이름 (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; 07 08 printf("1 번째숫자를입력하세요 : "); 09 scanf_s("%d", &a); 10 printf("2번째숫자를입력하세요 : "); 11 scanf_s("%d", &b); 12 printf("3 번째숫자를입력하세요 : "); 13 scanf_s("%d", &c); 14 printf("4 번째숫자를입력하세요 : "); 15 scanf_s("%d", &d); 16 17 hap = a+b+c+d; 18 19 printf(" 합계 = = > %d \n", hap); 20 } ---각각의입력변수와합계변수를선언한다. ---변수에숫자를입력한다. ---변수에숫자를입력한다. ---변수에숫자를입력한다. ---변수에숫자를입력한다. ---입력받은숫자의합계에대한결과다

1. 배열의이해 배열의선언방법 예 ) - 변수 4 개를담은정수형배열을선언

[ 기본 8-2] 배열에값을선언하여출력하는예 01 #include <stdio.h> 02 03 int main( ) 04 { 05 int aa[4]; 06 int hap; 07 08 printf("1 번째숫자를입력하세요 : "); 09 scanf_s("%d", &aa[0]); 10 printf("2번째숫자를입력하세요 : "); 11 scanf_s("%d", &aa[1]); 12 printf("3 번째숫자를입력하세요 : "); 13 scanf_s("%d", &aa[2]); 14 printf("4 번째숫자를입력하세요 : "); 15 scanf_s("%d", &aa[3]); 16 17 hap = aa[0] + aa[1] + aa[2] + aa[3]; 18 19 printf(" 합계 = = > %d \n", hap); 20 } ---정수형배열을선언한다. ---aa[0] 에숫자를입력한다. ---aa[1] 에숫자를입력한다. ---aa[2] 에숫자를입력한다. ---aa[3] 에숫자를입력한다. ---입력받은배열에저장된숫자합계의결과다

1. 배열의이해 배열의활용범위 배열의첨자가순서대로변할수있도록반복문과함께활용해야만배열의효율성이극대화됨.

[ 응용 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_s("%d", 1 ); 13 } 14 15 hap = aa[0] + aa[1] + aa[2] + aa[3]; 16 17 printf(" 합계 = = > %d \n", hap); 18 } --- 배열과합계변수, 첨자를선언한다 ---aa[0]~[3] 배열에숫자 4 개를입력받는다. --- 배열에저장된숫자 4 개를더한다.

1. 배열의이해 15 행수정 수동덧셈을 for 문을이용하여숫자갯수에맞춘자동덧셈으로수정함.

1. 배열의이해 배열의초기화 배열을정의하는동시에값을대입하는것 4 개의값을담은배열 aa 의초기화 ( 블록 ({ }) 과콤마 (,) 를사용 ) 초기화하지않고선언만한경우

1. 배열의이해 배열의개수보다초기화값의개수가적은경우 1,000 개를모두 0 으로초기화 들어갈곳이없다. 배열의개수보다초기화할값의개수가많은경우

[ 기본 8-4] 배열의초기화예 1 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] ); 17 printf("\n"); 18 19 for (i=0 ; i<=3 ; i++) 20 printf("cc[%d]= = >%d\t", i, cc[i] ); 21 printf("\n"); ---배열개수를지정하고초기화한다. ---배열개수를지정하지않고초기화한다. ---배열일부만초기화한다. ---배열전체를 0으로초기화한다. ---4회반복하며배열 aa[0]~aa[3] 값을출력한다. ---4회반복하며배열 bb[0]~bb[3] 값을출력한다. ---4회반복하며배열 cc[0]~cc[3] 값을출력한다.

[ 기본 8-4] 배열의초기화예 1 22 23 for (i=0 ; i<=3 ; i++) 24 printf("dd[%d]= = >%d\t", i, dd[i] ); 25 printf("\n"); 26 } ---4 회반복하며배열 dd[0]~dd[3] 값을출력한다.

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

[ 응용 8-5] 배열의초기화예 2 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 bb[i] = 1 ; 16 } 17 18 printf("bb[0] 는 %d, bb[99] 는 %d 입력됨 \n", bb[0], bb[99]); 19 } --- 배열 aa 와 bb 를선언한다. --- 배열 aa[0], aa[1], aa[2],, aa[99] 에 0, 2, 4,, 198 이대입된다 --- 배열 bb[0] 에 aa[99] 를대입하는방식으로값이역순으로대입된다.

1. 배열의이해 배열의크기알아내기 sizeof( ) 함수사용 int aa[4]; 배열의크기알아내기 1 aa 배열이메모리에서차지하고있는크기 (4 바이트 4 개 =16 바이트 ) 를알아낸다. 2 선언한배열의데이터형식의크기 (4 바이트 ) 로나눈다.

[ 기본 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 } --- 배열을선언한다. 변수의개수를지정하지않았다. --- 배열크기를저장할변수다. --- 배열크기를계산한다.

1. 배열의이해

2. 배열과문자열 정수형배열과문자형배열

[ 기본 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의전체문자열을출력한다.

2. 배열과문자열 문자출력과문자열출력비교

[ 응용 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] = 1 ; 12 } 13 tt[4] = '\0'; 14 15 printf(" 거꾸로출력한결과 = = > %s \n", tt); 16 } --- 크기 5 의문자형배열 ss 와변환해서저장할배열 tt 다. ---4 회반복해서각배열에문자를거꾸로대입한다. --- 마지막에널문자를삽입한다.

2. 배열과문자열 문자열함수로문자열다루기 문자열함수로문자열다루기 문자열의길이를알려주는함수 : 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 } --- 문자열함수의목록이포함된 string.h 를포함한다. --- 문자열배열과길이를저장할변수다. --- 문자열배열 ss 의길이를구한다. --- 큰따옴표를출력하기위해 \" 문자를사용한다.

2. 배열과문자열 문자열을복사하는함수 : strcpy_s( ) 문자열배열 A 에 문자열 B 를 최대길이 만큼복사. ( 최대길이 는 문자열배열 A 의크기 )

[ 기본 8-10] 문자열처리함수 strcpy_s( ) 사용예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main( ) 05 { 06 char ss[4]; 07 08 strcpy_s(ss, 4, "XYZ"); 09 10 printf(" 문자열 ss 의내용 = = > %s \n", ss); 11 } --- 문자열배열을선언한다. --- 배열 ss 에문자열 "XYZ" 를 4 바이트로복사한다.

2. 배열과문자열 strcpy_s( ) 함수의사용 오류 올바른사용

2. 배열과문자열 두문자열을이어주는함수 : strcat_s( ) 문자열배열 A 와 문자열 B 를이어다시 문자열배열 A 에넣음. ( 최대길이는 문자열배열 A 와문자열 B 를합친길이 +1 이상 이어야함 )

[ 기본 8-11] 문자열처리함수 strcat_s( ) 사용예 01 #include <stdio.h> 02 #include <string.h> 03 04 int main( ) 05 { 06 char ss[7] = "XYZ"; 07 08 strcat_s(ss, 7, "ABC"); 09 10 printf(" 이어진문자열 ss 의내용 = = > %s \n", ss); 11 } --- 문자열배열을선언하고초기화한다. --- 배열 ss 의내용 ("XYZ") 에문자열 "ABC" 를대입하고이어서다시 ss 에대입한다.

2. 배열과문자열 두문자열을비교하는함수 : strcmp( ) strcmp( 문자열 A, 문자열 B) 는 A-B 의결과를돌려줌. 결과가 0 이나오면 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 에대입한다.

2. 배열과문자열 strcmp( ) 함수는주로두문자열이같은지를확인할때사용함. [ 기본 8-12] 는 ss 와 tt 가서로다르므로 ( 대문자와소문자는완전히다른문자 ) 0 이외의값이나옴.

2. 배열과문자열 문자열입출력함수 문자열을입력받는함수 : gets_s( ) scanf() 와비슷한기능으로, 문자열입력시상대적으로유용 최대입력문자는널문자를고려해서 배열크기 1 까지입력 Enter 키를입력할때까지 ss에문자열을받아들임 문자열을출력하는함수 : puts( ) printf() 와비슷한기능으로, 문자열출력시상대적으로유용 \n 이없어도출력한후자동으로줄을넘김

[ 응용 8-13] 문자열입출력함수 gets_s( ),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_s(ss, 20); 12 13 puts(" 두번째문자열을입력하세요."); 14 1 15 16 r1 = strlen(ss); 17 r2 = strlen(tt); 18 19 printf(" 첫번째문자열의길이 = = > %d \n", r1); 20 printf(" 두번째문자열의길이 = = > %d \n", r2); 21 ---문자형배열 ss와 tt를선언한다. ---배열 ss와 tt에문자열을입력한다. ---배열 ss와 tt의문자열길이를저장한다. ---각배열의문자열길이를출력한다.

[ 응용 8-13] 문자열입출력함수 gets_s( ),puts( ) 사용예 22 if ( 2 = = 0) 23 puts(" 두문자열의내용이같습니다.\n"); 24 else 25 puts(" 두문자열의내용이다릅니다.\n"); 26 } ---ss 와 tt 의문자열이같은지를비교한다.

3. 2 차원배열 2 차원배열의기본개념 1 차원배열을여러개연결한것 두개의첨자사용

[ 기본 8-14] 2 차원배열의사용예 1 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], aa[0][3]); 14 printf("%3d %3d %3d %3d\n", aa[1][0], aa[1][1], aa[1][2], aa[1][3]); 15 printf("%3d %3d %3d %3d\n", aa[2][0], aa[2][1], aa[2][2], aa[2][3]); 16 } ---2 차원배열을선언한다. --- 각요소에값을대입한다. --- 배열의내용을출력한다.

[ 응용 8-15] 2 차원배열의사용예 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( 1 ) 13 { 14 aa[i][k] = val; 15 val++; 16 } 17 } 18 19 printf("aa[0][0] 부터 aa[2][3] 까지출력 \n"); 20 ---2 차원배열과첨자변수를선언한다. --- 배열에들어갈값을초기화한다 ----- 바깥 for 문을세번반복한다. 즉, 앞첨자가행단위로변경된다. ----- 안쪽 for 문을네번반복한다. 즉, 뒤첨자가열단위로변경된다 -------- 배열에 val 값을입력한후 1 증가시킨다.

[ 응용 8-15] 2 차원배열의사용예 2 21 for( i=0; i<3; i++) 22 { 23 for( k=0; k<4 ; k++) 24 { 25 printf("%3d ", 2 ); 26 } 27 printf("\n"); 28 } 29 } --- 입력과동일한개념으로 12 회출력한다. ------ 한행을출력한후줄을넘긴다.

3. 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 { 16 for( k=0 ; k<4 ; k++) 17 { 18 printf("%3d", aa[i][k]); 19 } 20 printf("\n"); 21 } 22 } ---2 차원배열을초기화한다. ---2 차원배열에저장된값을출력한다.

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

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

[ 예제모음 20] 입력된문자열을거꾸로출력

[ 예제모음 20] 입력된문자열을거꾸로출력 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("%s", ss, 100); 12 13 count = strlen(ss); 14 15 for(i=0 ; i<count ; i++) 16 { 17 tt[i] = ss[count-(i+1)]; 18 } 19 tt[count] = '\0'; 20 21 printf(" 내용을거꾸로출력 = = > %s \n", tt); 22 } --- 문자형배열 ss 를선언한다. --- 문자형배열 tt 를선언한다. --- 문자를입력받는다. --- 입력받은문자의개수를구한다. --- 문자열의개수만큼반복해서 tt 배열에문자열을거꾸로저장한다. ---tt 배열의마지막에널문자를입력한다

[ 예제모음 21] 대문자와소문자의변환 if ( ('A' <= in[i]) && (in[i] <= 'Z'))

[ 예제모음 21] 대문자와소문자의변환 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_s(in, 50); 12 13 len = strlen(in); 14 15 for(i=0 ; i<len ; i++) 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]; --- 입력문자형배열 in 과출력문자형배열 out 이다. --- 대문자와소문자의값차이를 diff 에저장한다. --- 문자를입력받는다. 실제최대입력문자는 ' 배열크기 -1' 이다. --- 입력한문자열의길이를구한다. --- 문자가대문자면대소문자차이값을더한다. --- 문자가소문자면대소문자차이값을뺀다. --- 영문자가아닌기호, 숫자등은그대로둔다.

[ 예제모음 21] 대문자와소문자의변환 23 } 24 out[i] = '\0'; 25 26 printf(" 변환된문자 = >%s \n", out); 27 } --- 마지막에널문자를입력한다.

[ 예제모음 22] 구구단의결과를 2 차원배열에저장

[ 예제모음 22] 구구단의결과를 2 차원배열에저장 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 } --- 문자형 2 차원배열 gugu 와첨자변수 i, k 를선언한다. --- 구구단을곱한결과를 2 차원배열에저장한다. i, k 가 0 부터시작되므로 1 을더해서곱했다. --- 구구단결과를출력한다. ------ 한행을출력한후줄을넘긴다.

[ 예제모음 23] 문자열내특정문자의변환

[ 예제모음 23] 문자열내특정문자의변환 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_s(str, 100); 12 13 printf(" 기존문자와새로운문자 : "); 14 scanf_s("%c %c", &ch1, 1, &ch2, 1); 15 16 for(i=0 ; i<strlen(str) ; i++) 17 { 18 if (str[i] = = ch1) 19 str[i] = ch2; 20 } 21 printf(" 변환된결과 = = > %s \n", str); 22 } --- 문자형배열 str 을선언한다. --- 기존문자와새문자를위한문자형변수다. --- 최대 99 자를입력받는다. --- 기존문자 (ch1) 와새문자 (ch2) 를한글자씩입력받는다 ( 띄어쓰기로구분 ). --- 문자열의길이만큼반복하면서기존문자 (ch1) 가있으면새문자 (ch2) 로교체한다.

[9 장요약 ] 1 배열의기본 ➊ 배열은변수여러개를나란히나열해놓은개념이다. ➋ 변수여러개를개별적으로선언하지않고, 공통된변수이름을사용하되첨자만변경해서사용할수있다. ➌ 배열의첨자는대개 0부터시작한다. ➍ for문등의반복문과함께사용하는경우가많다. ➎ 배열의개수를알아내려면 sizeof( ) 함수를사용하면된다. 2 배열과문자열 ➊ 문자여러개를나열한문자열은배열의형태로표현할수있다. ➋ 문자열을배열에저장하기위해서는문자열의끝을나타내는 \0 을고려하여 문자열길이 +1 크기의배열이필요하다. 3 자주사용하는문자열함수

[9 장요약 ] 4 2 차원배열 ➊ 행과열로만든배열로서, 2 차원배열의개수는 행수 열수 로계산한다. ➋ 선언과동시에 2 차원배열을초기화하는형식은다음과같다.