혼자 공부하는 C언어 책 정리 및 발생하는 트러블 슈팅 해결
Chapter 08 함수
학습목표
- 많은 양의 데이터를 메모리에 저장하는 배열 생성 방법을 알아보자
- 배열을 사용하는 방법과 배열이 문자열을 저장하는 방법을 알아보자
8-1 배열의 선언과 사용
동일한 자료형을 저장할 저장 공간이 많이 필요한 경우 일일이 변수를 선언할 수 없다. 이때 이 문제를 해결하기 위해 '배열'을 사용한다. 배열을 사용하면 많은 변수를 하나의 선언문으로 간단하게 대체할 수 있다.
예를 들어 다섯 과목의 점수를 처리하고 싶어서 int형 변수로 하나씩 개별적으로 선언했다고 가정하면 점수도 하나씩 변수에 넣어 줘야 한다. 즉, 반복문 사용이 불가능하다. 왜냐하면 이름이 별도로 있기 때문이다. 그래서 이 같은 형태의 많은 데이터를 반복문으로 처리하기 위해서 메모리에 연속적으로 저장해 놓고 쪼개서 사용하는 방법인 배열(array)을 사용한다.
핵심포인트
- 배열을 선언하면 많은 변수를 한 번에 선언하는 효과를 볼 수 있다.
- 배열을 초기화할 때 중괄호( { } )를 사용한다.
- 배열은 주로 반복문으로 처리한다.
- 배열 전체의 크기를 구할 때 sizeof 연산자를 사용한다.
배열의 선언과 요소의 사용
구분 | 사용 예 | 기능 |
배열 선언 | int ary[5]; | int형 변수 5개를 한 번에 확보한다. |
요소 사용 | ary[0], ary[1], ary[2], ary[3], ary[4] | 배열 요소를 사용할 때는 첨자를 0부터 시작해 '요소 개수-1'까지 사용한다. |
초기화 | int ary[5] = { 1, 2, 3, 4, 5 }; | 초기화는 중괄호 안에 값을 나열한다. |
8-2 문자를 저장하는 배열
char형 배열은 문자들을 메모리의 연속된 공간에 저장할 수 있으므로 주로 문자열을 저장하는 용도로 쓴다. char형 배열을 선언할 때 꼭 기억해야할 점은 저장할 문자열의 길이보다 최소한 하나 이상 크게 배열을 선언해야 한다.
예를 들어 문자열 "apple"을 저장할 배열은 배열 요소 개수가 최소한 6개 이상이어야 한다. 이렇게 여분의 공간이 필요한 이유는 널 문자(\n)를 저정하기 위해서이다.
책과 다른 내용
scanf_s("%s", str, sizeof(str));의 형태로 써야한다. 이렇게 해야 입력받을 문자열의 최대 크기를 scanf_s 함수에 전달할 수 있습니다. 이 추가적인 매개변수는 버퍼 오버플로우를 방지하기 위한 것입니다.
핵심 포인트
- char형 배열은 문자열을 저장하는 변수의 역할을 하는 것으로 문자열로 직접 초기화할 수 있다.
- char형 배열에 문자열을 저장할 때는 대입 연산자 대신 strcpy 함수를 사용한다.
- char형 배열에 문자열을 입출력 할 때는 scanf, gets, printf, puts 등의 함수를 사용한다.
문자열 처리
구분 | 사용 예 | 기능 |
char형 배열 초기화 | char str[80] = "apple"; | char형 배열은 문자열로 초기화한다. 문자열의 끝에는 널 문자가 있다. |
문자열 대입 | char str[80]; strcpy(str, "apple"); |
문자열 대입은 strcpy 함수를 사용한다. str 배열에 문자열 "apple" 저장 |
문자열 입출력 | char str[80]; scnaf("%s", str); gets(str); printf("%s", str); puts(str); |
scanf 함수는 하나의 단어만 입력 gets 함수는 한 줄 입력 printf 함수는 문자열 출력 puts 함수는 문자열 출력 후 줄 바꿈 |
다음 장은 포인터인데 기대된다.
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B3773573071
'프로그래밍 언어 > C언어' 카테고리의 다른 글
[혼자 공부하는 C언어] - Chapter 09 정리 및 문제 해결 (0) | 2024.06.24 |
---|---|
[혼자 공부하는 C언어] - Chapter 07 정리 및 문제 해결 (0) | 2024.06.20 |
[혼자 공부하는 C언어] - Chapter 06 정리 및 문제 해결 (0) | 2024.06.19 |
[혼자 공부하는 C언어] - Chapter 05 정리 및 문제 해결 (1) | 2024.06.19 |
[혼자 공부하는 C언어] - Chapter 04 정리 및 문제 해결 (0) | 2024.06.18 |