- C++에서의 문자열 처리: string 클래스의 이해
C++ 프로그래밍 언어는 문자열을 다루기 위해 두 가지 방법을 제공합니다
: 전통적인 C언어 스타일의 문자형 배열과 C++에 새롭게 도입된 string 클래스입니다.
이번 포스트에서는 후자인 string 클래스에 초점을 맞춰 보겠습니다.
- string 클래스의 기본
string 클래스는 문자열을 보다 편리하게 다룰 수 있도록 해주는 C++의 표준 라이브러리 컴포넌트입니다.
이를 사용하기 위해서는 먼저 #include <string>을 통해 헤더 파일을 포함시켜야 하며,
std 네임스페이스를 명시해야 합니다.
string 클래스는 문자형 배열보다 사용하기 편리하며, 다음과 같은 방식으로 문자열의 선언 및 초기화가 가능합니다:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1; // 문자열 선언
str1 = "C++ Programming"; // 문자열 초기화
string str2 = "C++"; // 문자열의 선언과 동시에 초기화
}
이처럼 string 객체를 사용하면 문자열을 단순한 변수로 선언할 수 있으며, 문자열의 길이에 대해 개발자가 직접 신경 쓸 필요가 없습니다. string 클래스는 문자열의 길이를 자동으로 관리해 줍니다.
- 문자열의 다루기
string 객체는 배열처럼 인덱스를 통해 각 문자에 접근할 수 있으며, 다음과 같이 문자열의 길이를 확인하고, 문자열을 출력할 수 있습니다.
string dog = "Navi";
cout << "현재 dog 변수의 길이는 " << dog.length() << "입니다." << endl;
cout << "강아지 이름의 첫 글자는 " << dog[0] << "입니다.";
- 문자열의 처리
string 클래스를 사용하면, 문자열 사이의 대입 및 결합이 매우 간단해집니다. 예를 들어, 다음과 같이 대입 연산자(=)와 복합 대입 연산자(+=)를 사용하여 문자열을 쉽게 다룰 수 있습니다:
string str1 = "C++ is ";
string str2 = "Cool!";
str1 += str2; // 문자열 결합
cout << str1; // "C++ is Cool!" 출력
- 문자열 입출력
string 객체와 함께 cin과 cout을 사용하여 문자열의 입력과 출력을 처리할 수 있습니다. 하나의 행(line)을 입력 받기 위해서는 getline() 함수를 사용하는 것이 좋습니다:
string name;
cout << "이름을 입력하세요: ";
getline(cin, name);
cout << "안녕하세요, " << name << "님!";
string 클래스는 C++에서 문자열을 다루기 위한 강력하고 유연한 방법을 제공합니다. 그 사용의 용이성과 다양한 기능 덕분에, 개발자는 문자열 관련 작업을 훨씬 더 효과적으로 수행할 수 있습니다.
C++의 string 클래스와 그 메소드들에 대해 알아보겠습니다. 이 클래스는 문자열과 관련된 다양한 작업을 수행할 수 있도록 해주며, 여기에는 몇 가지 핵심적인 메소드들이 있습니다.
- length() 메소드와 size() 메소드 : length()와 size() 메소드는 문자열의 길이를 반환합니다. 두 메소드는 동일한 값을 반환하지만, size()는 컨테이너의 일관된 인터페이스를 제공하기 위해 존재합니다.
- append() 메소드 : append() 메소드는 문자열의 끝에 다른 문자열을 추가합니다. 다양한 오버로드가 있어 문자열, 문자의 일부 또는 특정 문자를 여러 번 추가할 수 있습니다.
- find() 메소드 : find() 메소드는 문자열 내에서 특정 문자열 또는 문자의 첫 출현 위치를 찾습니다. 찾고자 하는 문자열이나 문자가 없으면 string::npos를 반환합니다.
- compare() 메소드 : compare() 메소드는 두 문자열을 비교하여 같은지, 앞서는지, 뒤따르는지를 판단합니다. 이는 사전식 비교로 수행됩니다.
- replace() 메소드 : replace() 메소드는 문자열의 일부를 다른 문자열로 교체합니다. 교체할 위치, 길이, 그리고 새로운 문자열을 인자로 받습니다.
- capacity() 메소드와 max_size() 메소드 : capacity() 메소드는 문자열이 현재 할당된 저장 공간의 크기를, max_size() 메소드는 문자열이 담을 수 있는 최대 크기를 반환합니다.
'Program Language > C++ 언어' 카테고리의 다른 글
10. C++ 함수의 기본 (0) | 2024.05.31 |
---|---|
09. C++ 구조체의 기본과 활용 (0) | 2024.05.31 |
07. C++ 배열과 포인터 - 포인터의 연산과 동적 할당 메모리 (0) | 2023.08.26 |
06. C++ 배열과 포인터 - 포인터의 개념 (0) | 2023.02.16 |
05. C++ 배열과 포인터 - 1차원 배열과 다차원 배열 (0) | 2023.01.28 |