728x90
C++에서 std::string 사용법 정리
C++ 표준 라이브러리의 std::string은 문자열을 처리할 때 사용하는 강력한 클래스입니다. 다음은 std::string의 주요 사용법과 활용 예제입니다.
1. 문자열 초기화 및 선언
기본 선언 및 초기화
std::string str1; // 빈 문자열
std::string str2 = "Hello"; // "Hello"로 초기화
std::string str3("World"); // "World"로 초기화
std::string str4(5, 'A'); // "AAAAA" 생성 ('A'를 5번 반복)
2. 문자열 입력 및 출력
표준 입력과 출력
std::string name;
std::cout << "Enter your name: ";
std::cin >> name; // 공백 이전까지만 입력받음
std::cout << "Hello, " << name << "!" << std::endl;
공백 포함 문자열 입력
std::string sentence;
std::cout << "Enter a sentence: ";
std::getline(std::cin, sentence); // 공백 포함 문자열 입력
std::cout << "You entered: " << sentence << std::endl;
3. 문자열 연결
+ 연산자를 이용한 연결
std::string str1 = "Hello";
std::string str2 = "World";
std::string result = str1 + " " + str2; // "Hello World"
+= 연산자를 이용한 연결
std::string str = "Hello";
str += " ";
str += "World"; // "Hello World"
4. 문자열 크기 및 길이
문자열 길이 확인
std::string str = "Hello";
std::cout << "Length: " << str.length() << std::endl; // 5
std::cout << "Size: " << str.size() << std::endl; // 5 (length와 동일)
5. 특정 문자 접근
인덱스를 이용한 접근
std::string str = "Hello";
char first = str[0]; // 'H'
char last = str[str.length() - 1]; // 'o'
at() 메서드 이용
char second = str.at(1); // 'e'
6. 문자열 비교
==, != 연산자
std::string str1 = "Hello";
std::string str2 = "World";
if (str1 == str2) {
std::cout << "Strings are equal" << std::endl;
} else {
std::cout << "Strings are not equal" << std::endl;
}
사전순 비교 (<, >, <=, >=)
if (str1 < str2) {
std::cout << str1 << " comes before " << str2 << std::endl;
}
7. 문자열 수정
문자 추가 및 삭제
std::string str = "Hello";
str.push_back('!'); // "Hello!"
str.pop_back(); // "Hello"
부분 문자열 삽입
str.insert(5, " World"); // "Hello World"
부분 문자열 제거
str.erase(5, 6); // "Hello" (5번 인덱스부터 6글자 삭제)
8. 부분 문자열 추출
substr() 메서드
std::string str = "Hello World";
std::string sub = str.substr(0, 5); // "Hello" (0번 인덱스부터 5글자)
9. 문자열 검색
특정 문자 검색
std::string str = "Hello World";
size_t pos = str.find('o'); // 첫 번째 'o'의 위치 (4)
특정 문자열 검색
size_t pos = str.find("World"); // "World"의 시작 위치 (6)
문자열 뒤에서 검색
size_t pos = str.rfind('o'); // 마지막 'o'의 위치 (7)
10. 문자열 정렬
정렬 예제
#include <algorithm>
std::string str = "dcba";
std::sort(str.begin(), str.end()); // "abcd"
11. 문자열 변환
숫자를 문자열로 변환
int num = 123;
std::string str = std::to_string(num); // "123"
문자열을 숫자로 변환
std::string str = "123";
int num = std::stoi(str); // 123
double d = std::stod(str); // 123.0
12. 기타 유용한 메서드
문자열 비우기 및 확인
std::string str = "Hello";
str.clear(); // 문자열 비우기
if (str.empty()) {
std::cout << "String is empty" << std::endl;
}
문자열 반복
std::string str(5, '*'); // "*****" (문자 '*'를 5번 반복)
13. 2차원 문자열 벡터
std::vector<std::string> vec = {"Apple", "Banana", "Cherry"};
for (const auto& s : vec) {
std::cout << s << std::endl;
}
728x90