C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;

Slides:



Advertisements
Similar presentations
2007 1학기 12 배열.
Advertisements

데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
Power C++ 제6장 포인터와 문자열.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
배열(Array) 선린인터넷고등학교 정보통신과 유 순 옥.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
C 6장. 함수 #include <stdio.h> int main(void) { int num;
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
C언어: 배열 (Arrays).
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
Part 11 문자열 ©우균, 창병모 ©우균, 창병모.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
Chapter 11 Strings.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
13. 포인터와 배열! 함께 이해하기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
제2장 데이터형과 표준 입출력문 문봉근.
Chapter 10 Strings and Pointers
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
C언어 (8) 정명희.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
-Part2- 제2장 다차원 배열이란 무엇인가.
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
printf("Global Korea\n");
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Chapter 09. 배열.
어서와 C언어는 처음이지 제22장.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
배열, 포인터, 함수 Review & 과제 1, 2.
배열.
11장. 1차원 배열.
Presentation transcript:

C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num; printf(“Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("Is negative.\n"); printf("num = %d\n", num); return 0; }

학습목표 ■ 배열이란 무엇인지 알아보고, 배열을 선언하고 사용하는 방법을 알아본다. ■ 배열을 초기화하는 방법을 알아본다. ■ 이차원 배열을 선언하고 사용하는 방법을 알아본다. ■ 문자열이란 무엇인지 알아보고, 문자 배열을 이용해서 문자열을 저장하는 방법을 알아본다. ■ 문자열을 처리하기 위한 여러 가지 함수들에 대해 알아본다. ■ 문자열의 입출력 방법을 알아본다. 7장. 배열과 문자열

목차 배열 배열의 기본 다차원 배열 문자열 문자 배열 문자열 처리 함수 문자열의 입출력 문자열 배열 7장. 배열과 문자열

5개의 정수를 입력받으려면 5개의 정수형 변수를 선언해야 한다. 배열 배열의 기본 5개의 정수를 입력받으려면 5개의 정수형 변수를 선언해야 한다. 7장. 배열과 함수

배열 배열 같은 데이터형의 변수를 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 방법을 제공 배열의 기본 배열 같은 데이터형의 변수를 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 방법을 제공 배열의 각 원소는 메모리에 연속적으로 할당된다. 7장. 배열과 함수

배열의 선언(1/3) 배열 배열을 선언하려면 배열의 데이터형과 배열명, 배열의 크기가 필요하다. 배열의 기본 7장. 배열과 함수

배열의 선언(2/3) 배열 변수의 메모리 할당 배열의 크기는 반드시 0보다 큰 정수형 상수로 지정해야 한다. 배열의 기본 7장. 배열과 함수

배열의 선언(3/3) 배열 배열의 크기는 리터럴 상수, 매크로 상수로 지정할 수 있다. 배열의 기본 배열의 선언(3/3) 배열의 크기는 리터럴 상수, 매크로 상수로 지정할 수 있다. 배열 전체의 바이트 크기를 배열 원소 하나의 바이트 크기로 나누면 배열 원소의 개수(배열의 크기)를 구할 수 있다. 7장. 배열과 함수

배열의 사용(1/2) 배열 배열의 각 원소에 접근하려면 첨자 또는 인덱스(index)를 이용한다. 배열의 인덱스는 항상 0부터 시작하고, 배열 크기보다 1 작은 값까지 사용할 수 있다. 7장. 배열과 함수

배열의 선언 및 사용 예 배열 배열의 사용 7장. 배열과 함수 01: /* Ex07_01.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int arr[5]; 07: int i; 08: 09: arr[0] = 10; 10: arr[1] = 20; 11: arr[2] = 30; 12: arr[3] = 40; 13: arr[4] = 50; 14: 15: for(i = 0 ; i < 5 ; i++) 16: printf("arr[%d] = %d\n", i, arr[i]); 17: 18: return 0; 19: } int 배열의 선언 배열의 사용 배열의 각 원소 출력 7장. 배열과 함수

배열의 사용(2/2) 배열 배열 인덱스의 유효 범위는 0 ~ (배열의 크기 - 1) 사이의 값이다. 잘못된 인덱스를 사용하면 실행 에러가 발생할 수 있다. 7장. 배열과 함수

잘못된 인덱스의 사용 예 배열 14번째 줄에서 실행 에러가 발생하므로 프로그램이 정상적으로 수행되지 않는다! 배열의 사용 01: /* Ex07_02.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int arr[5]; 07: int i; 08: 09: arr[0] = 10; 10: arr[1] = 20; 11: arr[2] = 30; 12: arr[3] = 40; 13: arr[4] = 50; 14: arr[5] = 60; 15: 16: for(i = 0 ; i < 5 ; i++) 17: printf("arr[%d] = %d\n", i, arr[i]); 18: 19: return 0; 20: } 14번째 줄에서 실행 에러가 발생하므로 프로그램이 정상적으로 수행되지 않는다! 잘못된 인덱스의 사용 7장. 배열과 함수

배열의 초기화(1/4) 배열 배열도 초기화를 하지 않으면 쓰레기 값을 갖는다. 배열도 초기화해서 사용하는 것이 좋다. 7장. 배열과 함수

배열 배열의 초기화 배열의 초기화(2/4) 7장. 배열과 함수

배열의 초기화(3/4) 배열 배열을 초기화할 때 초기값을 원소의 개수보다 부족하게 지정하면 나머지 원소를 0으로 초기화한다. 배열을 초기화하기 위해서 { }를 사용할 때는 반드시 초기값을 하나 이상 지정해야 한다. 7장. 배열과 함수

배열 배열의 초기화 배열의 초기화(4/4) 배열의 초기값을 지정할 때는 배열의 크기를 생략할 수 있다. 7장. 배열과 함수

정수형 배열의 합계와 평균 구하기(1/2) 배열 배열의 활용 7장. 배열과 함수 01: /* Ex07_04.c */ 02: #include <stdio.h> 03: 04: #define MAX 5 05: 06: int main(void) 07: { 08: int arr[MAX] = { 0 }; 09: int i; 10: int sum; 11: double average; 12: 13: printf("%d개의 정수를 입력하세요 : ", MAX); 14: for(i = 0 ; i < MAX ; i++) 15: scanf("%d", &arr[i]); 16: 17: for(i = 0, sum = 0 ; i < MAX ; i++) 18: sum += arr[i]; 19: 배열의 크기로 사용될 매크로 상수 int형 배열의 선언 및 초기화 배열의 입력 배열의 합계 구하기 7장. 배열과 함수

정수형 배열의 합계와 평균 구하기(2/2) 배열 활 배열의 활용 7장. 배열과 함수 20: average = (double)sum / (double)MAX; 21: printf("합계 : %d, 평균 : %5.2f\n", sum, average); 22: 23: return 0; 24: } 배열의 평균 구하기 활 7장. 배열과 함수

정수형 배열의 선택 정렬(1/2) 배열 배열의 활용 7장. 배열과 함수 01: /* Ex07_05.c */ 02: #include <stdio.h> 03: 04: #define SIZE 10 05: 06: int main(void) 07: { 08: int array[SIZE] = { 23, 96, 35, 42, 81, 19, 8, 77, 50, 64 }; 09: int i, j, index; 10: int temp; 11: int형 배열의 선언 및 초기화 7장. 배열과 함수

정수형 배열의 선택 정렬(2/2) 배열 배열의 활용 7장. 배열과 함수 12: for(i = 0; i < SIZE-1 ; i++) 13: { 14: index = i; 15: for(j = i+1 ; j < SIZE ; j++) 16: { 17: if( array[index] > array[j] ) 18: index = j; 19: } 20: temp = array[i]; 21: array[i] = array[index]; 22: array[index] = temp; 23: } 24: 25: printf("정렬 결과 : "); 26: for(i = 0 ; i < SIZE ; i++) 27: printf("%d ", array[i]); 28: printf("\n"); 29: 30: return 0; 31: } 선택 정렬 7장. 배열과 함수

배열 배열의 활용 선택 정렬(insertion sort) 7장. 배열과 함수

다차원 배열 배열 배열의 원소에 접근하기 위해서 인덱스를 둘 이상 사용하는 경우를 말한다. 다차원 배열도 일차원 배열처럼 연속된 메모리에 할당된다. 7장. 배열과 함수

배열 다차원 배열 이차원 배열의 선언 7장. 배열과 함수

이차원 배열의 사용 배열 이차원 배열의 원소에 접근할 때 인덱스를 두 개 사용한다. 인덱스의 개수가 배열의 차수를 결정한다. 다차원 배열 이차원 배열의 사용 이차원 배열의 원소에 접근할 때 인덱스를 두 개 사용한다. 인덱스의 개수가 배열의 차수를 결정한다. 7장. 배열과 함수

이차원 배열의 선언 및 사용 예(1/2) 배열 다차원 배열 7장. 배열과 함수 01: /* Ex07_06.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: short data[2][3]; 07: int i, j; 08: 09: data[0][0] = 1; 10: data[0][1] = 2; 11: data[0][2] = 3; 12: data[1][0] = 4; 13: data[1][1] = 5; 14: data[1][2] = 6; 15: 이차원 배열의 선언 이차원 배열의 사용 7장. 배열과 함수

이차원 배열의 선언 및 사용 예(2/2) 배열 다차원 배열 7장. 배열과 함수 16: for(i = 0; i < 2 ; i++) 17: { 18: for(j = 0 ; j < 3 ; j++) 19: { 20: printf("%d ", data[i][j]); 21: } 22: printf("\n"); 23: } 24: 25: return 0; 26: } 이차원 배열의 사용 7장. 배열과 함수

배열 다차원 배열 이차원 배열의 초기화(1/2) 일차원 배열처럼 { }를 이용한다. 초기값을 이차원 배열의 제2크기 개수만큼씩 { }로 묶어서 다시 { } 안에 나열한다. 일차원 배열처럼 { } 안에 초기값만 나열할 수도 있다. 초기값을 생략하면 나머지 원소를 0으로 초기화한다. 7장. 배열과 함수

이차원 배열의 초기화(2/2) 배열 이차원 배열의 제1크기만 생략할 수 있고 제2크기는 생략할 수 없다 다차원 배열 7장. 배열과 함수

문자열 문자열 상수와 문자열 변수 문자열 연속된 문자들의 모임 문자열은 큰 따옴표("")로 표현한다. 문자 배열 문자열 연속된 문자들의 모임 문자열은 큰 따옴표("")로 표현한다. 문자열의 끝에는 널 문자('\0')를 함께 저장한다. 문자열 상수와 문자열 변수 문자열 상수 : 값이 변경되지 않는 문자열 "A"나 "Hello World" 등 문자열 리터럴이라고도 한다. 문자열 변수 : 프로그램 수행 중에 변경될 수 있는 문자열 문자 배열 7장. 배열과 함수

문자 배열의 선언 및 사용 문자열 문자 배열의 크기는 “저장할 문자열의 길이 + 1”로 할당해야 한다. 문자 배열도 인덱스를 이용해서 배열의 원소에 접근할 수 있다. 7장. 배열과 함수

문자 배열의 초기화(1/2) 문자열 문자열 상수를 이용해서 초기화한다. 문자 배열의 크기보다 큰 문자열로 초기화하면 컴파일 경고가 발생한다. 초기값을 지정할 때는 문자 배열의 크기를 생략할 수 있다. 7장. 배열과 함수

문자 배열의 선언 및 사용 예 문자열 문자 배열 7장. 배열과 함수 01: /* Ex07_07.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: char str1[4] = "abc"; 07: char str2[10] = "12345"; 08: char str3[ ] = "Hello World"; 09: 10: printf("str1 = %s\n", str1); 11: printf("str2 = %s\n", str2); 12: printf("str3 = %s\n", str3); 13: 14: return 0; 15: } 문자 배열의 선언 및 초기화 문자 배열의 출력 7장. 배열과 함수

문자열 문자 배열 문자 배열의 초기화(2/2) 7장. 배열과 함수

문자 배열의 출력 문자열 문자열 전체를 한 번에 출력하려면 printf 함수의 형식 문자열로 “%s”를 지정한다. 7장. 배열과 함수

문자 배열 사용시 주의 사항 문자열 배열의 원소가 아닌 문자 배열 전체에 직접 다른 문자열을 대입할 수 없다. 문자 배열에 저장된 각 문자를 하나씩 변경할 수 있지만, 보통은 문자열 처리 함수를 이용한다. 7장. 배열과 함수

문자열 처리함수 문자열 문자열을 복사하거나, 문자열의 길이를 구하거나, 문자열을 비교할 때 이용한다. 문자열 처리 함수 문자열 처리함수 문자열을 복사하거나, 문자열의 길이를 구하거나, 문자열을 비교할 때 이용한다. 문자열 처리 함수를 사용하려면 <string.h>를 포함해야 한다. 7장. 배열과 함수

문자열의 복사(1/2) 문자열 문자열을 변경하려면 문자 배열에 직접 문자열을 대입하는 대신, strcpy 함수를 이용한다. 문자열 처리 함수 문자열의 복사(1/2) 문자열을 변경하려면 문자 배열에 직접 문자열을 대입하는 대신, strcpy 함수를 이용한다. 7장. 배열과 함수

문자열 문자열 처리 함수 문자열의 복사(2/2) strcpy 함수에서 src 문자열의 길이가 dest 문자 배열의 크기보다 크면 실행 에러가 발생할 수 있다. strcpy 함수가 문자열을 복사할 때, 메모리가 충분한지 확인하지 않고 무조건 복사하기 때문이다. 7장. 배열과 함수

strcpy 함수의 사용 예 문자열 문자열 처리 함수 7장. 배열과 함수 01: /* Ex07_08.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char str1[20], str2[20]; 08: 09: strcpy(str1, "abcde"); 10: printf("str1 = %s\n", str1); 11: 12: strcpy(str2, str1); 13: printf("str2 = %s\n", str2); 14: 15: return 0; 16: } 문자열 처리 함수의 헤더 파일 포함 크기가 20인 문자 배열 선언 문자열의 복사 문자열의 복사 7장. 배열과 함수

문자열의 길이 구하기 문자열 널 문자를 제외한 문자열의 길이를 구하려면 strlen 함수를 이용한다. 문자열 처리 함수 7장. 배열과 함수

strlen 함수의 사용 예 문자열 문자열 처리 함수 7장. 배열과 함수 01: /* Ex07_09.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char str1[ ] = "abcde"; 08: char str2[10] = ""; 09: 10: printf("str1의 길이 = %d\n", strlen(str1)); 11: printf("str2의 길이 = %d\n", strlen(str2)); 12: printf("문자열의 길이 = %d\n", strlen("Hello World")); 13: 14: return 0; 15: } 문자열 처리 함수의 헤더 파일 포함 문자 배열의 선언 및 초기화 문자 배열의 길이 구하기 7장. 배열과 함수

문자열의 비교 문자열 문자열을 비교할 때 == 연산자를 사용하면 문자열의 주소만 비교한다. 문자열 처리 함수 문자열의 비교 문자열을 비교할 때 == 연산자를 사용하면 문자열의 주소만 비교한다. 문자열의 내용을 비교하려면 strcmp 함수를 사용해야 한다. 7장. 배열과 함수

strcmp 함수의 사용 예(1/2) 문자열 문자열 처리 함수 7장. 배열과 함수 01: /* Ex07_10.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char str1[20]; 08: char str2[20] = "ABCDE"; 09: 10: strcpy(str1, "abcde"); 11: 12: if( strcmp(str1, "abcde") == 0 ) 13: printf("두 문자열이 같습니다.\n"); 14: else 15: printf("두 문자열이 다릅니다.\n"); 16: 문자열 비교 7장. 배열과 함수

strcmp 함수의 사용 예(2/2) 문자열 문자열 처리 함수 7장. 배열과 함수 17: if( strcmp(str1, str2) == 0 ) 18: printf("두 문자열이 같습니다.\n"); 19: else 20: printf("두 문자열이 다릅니다.\n"); 21: 22: return 0; 23: } 문자열 비교 7장. 배열과 함수

문자열의 연결 문자열 문자 배열의 끝에 다른 문자열을 연결하려면 strcat 함수를 이용한다. 문자열 처리 함수 7장. 배열과 함수

strcat 함수의 사용 예 문자열 문자열 처리 함수 7장. 배열과 함수 01: /* Ex07_11.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char str[20] = "abcde"; 08: 09: strcat(str, "12345"); 10: 11: printf("str = %s\n", str); 12: 13: return 0; 14: } 문자 배열의 선언 및 초기화 문자열 연결 7장. 배열과 함수

scanf와 printf 함수 scanf 함수 사용 시 주의 사항 문자열 문자열의 입출력 scanf와 printf 함수 문자열을 입력받아서 문자 배열에 보관하려면 scanf 함수의 형식 문자열로 %s를 사용한다. 문자열을 출력할 때도 printf 함수의 형식 문자열로 %s를 사용한다. scanf 함수 사용 시 주의 사항 scanf 함수는 사용자가 입력된 내용 중 항상 공백 문자(‘ ’, ‘\t’, ‘\n’ 등)까지만을 입력으로 읽어온다. 빈칸을 포함한 문자열을 입력받으려면 scanf 함수 대신 gets 함수를 이용해야 한다. 7장. 배열과 함수

문자열의 입출력 예 문자열 빈칸을 포함한 문자열을 입력하면 빈칸까지만 입력으로 처리된다. 문자열의 입출력 7장. 배열과 함수 01: /* Ex07_12.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char name[20]; 08: 09: printf("이름을 입력하세요 : "); 10: scanf("%s", name); 11: printf("%s씨, 안녕하세요?\n", name); 12: 13: return 0; 14: } 문자 배열의 선언 문자열의 입력 문자열의 출력 빈칸을 포함한 문자열을 입력하면 빈칸까지만 입력으로 처리된다. 7장. 배열과 함수

gets 함수 puts 함수 문자열 빈칸을 포함한 한 줄의 문자열을 입력받는 데 사용된다. 문자열의 입출력 gets 함수 빈칸을 포함한 한 줄의 문자열을 입력받는 데 사용된다. puts 함수 한 줄의 문자열을 출력하는 데 사용된다. 출력 후에 자동으로 줄 바꿈 문자를 출력한다. 7장. 배열과 함수

공백이 있는 문자열의 입출력 예 문자열 문자열의 입출력 7장. 배열과 함수 01: /* Ex07_13.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char name[20]; 08: char msg[40]; 09: 10: printf("이름을 입력하세요 : "); 11: gets(name); 12: 13: sprintf(msg, "%s씨, 안녕하세요?", name); 14: puts(msg); 15: 16: return 0; 17: } 빈칸을 포함한 문자열의 입력 형식 문자열을 이용한 문자열 변경 한 줄의 문자열 출력 7장. 배열과 함수

안전 문자열 처리 함수(Secure String Manipulation Functions) 버퍼 오버런 : 할당 받은 배열의 크기를 넘어서서 메모리를 사용할 때 발생하는 실행 에러 버퍼 오버런 발생

문자열 안전 문자열 처리 함수 안전 문자열 처리 함수 기존의 문자열 처리 함수 이름에 _s가 붙는 이름을 사용

문자열 배열 문자열 배열 선언 문자열 문자열을 여러 개 저장하려면 문자 배열을 이차원 배열로 선언해야 한다. 제2크기는 저장할 문자열의 길이+1로 지정하고, 제1크기는 필요한 문자열의 개수로 지정한다. 7장. 배열과 함수

문자열 배열의 사용(1/2) 문자열 문자열 배열에 인덱스를 하나만 사용하면 배열에 보관된 문자열에 접근한다. 문자열 배열에 인덱스를 두 개 사용하면 특정 문자열의 특정 위치에 있는 문자에 접근한다. 7장. 배열과 함수

문자열 문자열 배열 문자열 배열의 사용(2/2) 7장. 배열과 함수

문자열 배열의 선언 및 사용 예 문자열 문자열 배열 7장. 배열과 함수 01: /* Ex07_14.c */ 02: #include <stdio.h> 03: #include <string.h> 04: 05: int main(void) 06: { 07: char s[3][5]; 08: int i; 09: 10: strcpy(s[0], "ab"); 11: strcpy(s[1], "cdef"); 12: strcpy(s[2], "ghi"); 13: 14: s[2][0] = 'G'; 15: for(i = 0 ; i < 3 ; i++) 16: printf("%s 문자열의 길이 : %d\n", s[i], strlen(s[i])); 17: 18: return 0; 19: } 문자열 배열의 선언 문자열 변경 문자열의 특정 문자 변경 7장. 배열과 함수

문자열 배열의 초기화 문자열 문자열 배열을 초기화하려면 { } 안에 문자열 상수들을 나열한다. 문자열 배열도 이차원 배열이므로, 초기값을 지정할 때는 배열의 제1크기를 생략할 수 있다. 7장. 배열과 함수

배열 학습정리 배열 : 같은 데이터 형의 변수들을 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 기능 배열의 선언 : 배열 원소의 데이터 형, 배열 이름, 배열의 크기가 필요하다. 배열의 크기는 상수로만 지정한다. 배열의 사용 : 배열의 각 원소에 접근하려면 인덱스를 사용한다. 인덱스는 항상 0~(배열의 크기-1)사이의 값이다. 배열의 초기화 : 배열을 초기화하려면 { } 안에 초기값을 나열한다. 배열을 초기화할 때는 배열의 크기를 생략할 수 있다. 다차원 배열 : 배열의 차수에는 제한이 없다. 이차원 배열의 선언 : int arr[2][3];처럼 배열의 제1크기와 제2크기를 지정한다. 7장. 배열과 문자열

문자열 학습정리 문자열 : 널 문자로 끝나는 연속된 문자들의 모임 문자 배열 : 문자열를 보관해두고 사용하려면 문자 배열을 선언하고 사용한다. 문자 배열의 초기화 : 문자 배열을 초기화하려면 char str[10] = "abc";처럼 문자열 상수를 이용한다. 문자열 처리 함수 : 문자 배열을 변경하거나 문자열의 길이를 구하려면 문자열 처리 함수를 이용해야 한다. 문자열의 입출력 : 입력 시 scanf나 gets, 출력 시 printf나 puts 이용 문자열 배열 : 문자열을 여러 개 저장하려면 문자 배열을 이차원 배열로 선언 7장. 배열과 문자열

7장. 배열과 문자열 수고하셨습니다. 질문 있습니까? NEXT Chapter 8장. 포인터