배열 (Arrays)
배열은 동일한 데이터 타입의 집합을 저장할 수 있는 연속된 메모리 블록입니다. 배열의 각 요소는 인덱스를 사용하여 접근할 수 있습니다.
1. 배열 선언과 초기화
배열을 선언하고 초기화하는 방법은 다음과 같습니다:
int numbers[5]; // 5개의 정수형 요소를 가지는 배열 선언
int numbers[5] = {1, 2, 3, 4, 5}; // 배열 초기화
2. 배열 요소 접근
배열의 각 요소는 인덱스를 사용하여 접근할 수 있습니다. 배열의 인덱스는 0부터 시작합니다.
cout << numbers[0] << endl; // 첫 번째 요소 출력
numbers[2] = 10; // 세 번째 요소에 값 할당
3. 배열의 크기
배열의 크기는 sizeof
연산자를 사용하여 구할 수 있습니다.
int size = sizeof(numbers) / sizeof(numbers[0]);
cout << "Array size: " << size << endl;
4. 다차원 배열
다차원 배열은 배열의 배열입니다. 예를 들어, 2차원 배열은 다음과 같이 선언할 수 있습니다:
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
cout << matrix[1][2] << endl; // 5 출력
문자열 (Strings)
문자열은 문자들의 연속입니다. C++에서 문자열을 처리하는 방법은 두 가지가 있습니다: C 스타일 문자열과 C++ 스타일 문자열입니다.
1. C 스타일 문자열
C 스타일 문자열은 문자 배열로 저장됩니다. 문자열의 끝은 null 문자('\0'
)로 표시됩니다.
char str[6] = "Hello";
cout << str << endl;
2. C++ 스타일 문자열
C++ 스타일 문자열은 표준 라이브러리의 string
클래스를 사용합니다. 더 많은 기능을 제공하며 사용하기 편리합니다.
#include <string>
using namespace std;
string str = "Hello, World!";
cout << str << endl;
3. 문자열 함수
문자열 클래스는 다양한 멤버 함수를 제공합니다:
length()
: 문자열의 길이를 반환append()
: 문자열을 추가substr()
: 부분 문자열 반환find()
: 문자열에서 특정 문자열을 찾음
예제:
string str = "Hello";
cout << "Length: " << str.length() << endl;
str.append(", World!");
cout << str << endl;
cout << "Substring: " << str.substr(0, 5) << endl;
cout << "Position of 'World': " << str.find("World") << endl;
예제 문제
문제 1: 배열의 요소 합을 계산하는 프로그램 작성
사용자로부터 5개의 정수를 입력받아 배열에 저장하고, 배열의 요소 합을 계산하여 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
using namespace std;
int main() {
int numbers[5];
int sum = 0;
cout << "Enter 5 numbers: ";
for (int i = 0; i < 5; i++) {
cin >> numbers[i];
sum += numbers[i];
}
cout << "Sum: " << sum << endl;
return 0;
}
이 프로그램은 사용자로부터 5개의 정수를 입력받아 배열에 저장하고, 배열의 요소 합을 계산하여 출력합니다.
문제 2: 2차원 배열의 요소를 출력하는 프로그램 작성
3x3 크기의 2차원 배열을 선언하고 초기화한 후, 배열의 모든 요소를 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
using namespace std;
int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
이 프로그램은 3x3 크기의 2차원 배열을 선언하고 초기화한 후, 배열의 모든 요소를 출력합니다.
문제 3: 문자열을 뒤집는 프로그램 작성
사용자로부터 문자열을 입력받아, 그 문자열을 뒤집어 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cout << "Enter a string: ";
cin >> str;
int n = str.length();
for (int i = 0; i < n / 2; i++) {
swap(str[i], str[n - i - 1]);
}
cout << "Reversed string: " << str << endl;
return 0;
}
이 프로그램은 사용자로부터 문자열을 입력받아, 그 문자열을 뒤집어 출력합니다.
다음 단계
8일차의 목표는 C++의 배열과 문자열에 대해 학습하는 것이었습니다. 다음 날부터는 포인터와 참조자에 대해 다룰 것입니다.
내일은 "포인터와 참조자"에 대해 다룰 예정입니다. 질문이나 피드백이 있으면 댓글로 남겨 주세요!
'-----ETC----- > C++ 마스터 시리즈' 카테고리의 다른 글
[C++ 마스터] Day 10: 동적 메모리 할당 (new, delete) (0) | 2024.08.01 |
---|---|
[C++ 마스터] Day 7: 함수와 재귀 (0) | 2024.08.01 |
[C++ 마스터] Day 5: 조건문과 제어 구조 (0) | 2024.08.01 |
[C++ 마스터] Day 6: 반복문 (for, while, do-while) (0) | 2024.08.01 |
[C++ 마스터] Day 4: 연산자와 표현식 (0) | 2024.08.01 |