C++ 배열과 문자열
안녕하세요, 소프트웨어 공장입니다! 오늘은 C++ 프로그래밍에서 매우 중요한 개념인 배열(Array)과 문자열(String)에 대해 알아보겠습니다. 이 글에서는 배열과 문자열의 기초부터 다양한 활용법까지 다룰 예정이며, 코드를 통해 이해를 도와드리겠습니다.
배열(Array)
배열은 같은 데이터 타입의 여러 값을 하나의 변수로 관리할 수 있는 자료구조입니다. 배열은 고정된 크기를 가지며, 각 요소는 인덱스를 통해 접근할 수 있습니다.
배열 선언 및 초기화
배열을 선언하려면 데이터 타입과 배열의 크기를 지정해야 합니다.
#include <iostream>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
std::cout << "numbers[" << i << "] = " << numbers[i] << std::endl;
}
return 0;
}
출력 결과:
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5
배열 크기 자동 설정
초기화 값의 개수에 따라 배열 크기를 자동으로 설정할 수도 있습니다.
int numbers[] = {10, 20, 30};
위 코드에서 배열의 크기는 3
으로 자동 설정됩니다.
다차원 배열
C++에서는 2차원 이상의 다차원 배열도 사용할 수 있습니다. 예를 들어, 행렬 데이터를 저장할 때 유용합니다.
#include <iostream>
int main() {
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
std::cout << "matrix[" << i << "][" << j << "] = " << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
출력 결과:
matrix[0][0] = 1 matrix[0][1] = 2 matrix[0][2] = 3
matrix[1][0] = 4 matrix[1][1] = 5 matrix[1][2] = 6
문자열(String)
문자열은 문자들의 배열로 표현되며, C++에서는 C 스타일 문자열과 std::string을 모두 사용할 수 있습니다.
C 스타일 문자열
C 스타일 문자열은 char
배열을 사용하여 선언합니다. 문자열의 끝은 반드시 \0
(널 문자)로 표시해야 합니다.
#include <iostream>
int main() {
char greeting[] = "Hello, World!";
std::cout << greeting << std::endl;
return 0;
}
문자열 입력과 출력
#include <iostream>
int main() {
char name[50];
std::cout << "Enter your name: ";
std::cin >> name;
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
주의사항
std::cin
은 공백 문자 이전까지만 입력받습니다.
std::string 사용하기
std::string
은 C++ 표준 라이브러리에서 제공하는 문자열 클래스입니다. 더 많은 기능을 제공하며 사용이 편리합니다.
#include <iostream>
#include <string>
int main() {
std::string name;
std::cout << "Enter your full name: ";
std::getline(std::cin, name);
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
문자열 조작
std::string
은 문자열을 쉽게 조작할 수 있는 다양한 멤버 함수를 제공합니다.
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
// 문자열 합치기
std::string result = str1 + ", " + str2 + "!";
std::cout << result << std::endl;
// 문자열 길이
std::cout << "Length of result: " << result.length() << std::endl;
// 부분 문자열 추출
std::string sub = result.substr(7, 5);
std::cout << "Substring: " << sub << std::endl;
return 0;
}
출력 결과:
Hello, World!
Length of result: 13
Substring: World
문자열 비교
문자열 비교는 ==
, <
, >
등의 연산자로 수행할 수 있습니다.
#include <iostream>
#include <string>
int main() {
std::string str1 = "Apple";
std::string str2 = "Orange";
if (str1 < str2) {
std::cout << str1 << " comes before " << str2 << std::endl;
} else {
std::cout << str1 << " comes after " << str2 << std::endl;
}
return 0;
}
출력 결과:
Apple comes before Orange
배열과 문자열 응용 예제
배열과 문자열을 조합하여 간단한 프로그램을 작성해보겠습니다.
예제: 학생 점수 평균 계산
#include <iostream>
#include <string>
int main() {
const int numStudents = 3;
std::string names[numStudents];
int scores[numStudents];
for (int i = 0; i < numStudents; i++) {
std::cout << "Enter name of student " << (i + 1) << ": ";
std::cin >> names[i];
std::cout << "Enter score of " << names[i] << ": ";
std::cin >> scores[i];
}
int totalScore = 0;
for (int i = 0; i < numStudents; i++) {
totalScore += scores[i];
}
double average = static_cast<double>(totalScore) / numStudents;
std::cout << "Average score: " << average << std::endl;
return 0;
}
출력 예시:
Enter name of student 1: Alice
Enter score of Alice: 85
Enter name of student 2: Bob
Enter score of Bob: 90
Enter name of student 3: Charlie
Enter score of Charlie: 78
Average score: 84.3333
마치며
이번 글에서는 C++의 배열과 문자열에 대해 기초부터 활용까지 다양한 내용을 다뤘습니다. 배열과 문자열은 모든 프로그래밍에서 기본적인 역할을 하기 때문에, 잘 익혀두는 것이 중요합니다. 다음 포스팅에서는 더 흥미로운 C++ 주제로 찾아오겠습니다.
감사합니다!
'cpp' 카테고리의 다른 글
C++ 동적 메모리 관리 (0) | 2024.12.19 |
---|---|
C++ 포인터와 참조 (0) | 2024.12.18 |
C++ 함수 (0) | 2024.12.18 |
C++ 반복문 (0) | 2024.12.18 |
C++ 조건문 (Conditional Statements) (0) | 2024.12.17 |