C, C++
<string>
Yongs12
2023. 7. 8. 12:55
STL에 있는 문자열을 처리하기 위한 컨테이너 이다.
C언어에서 사용하던 방식의 char[]. wchar_t[]를 다루기 쉽게 만들어졌다.
C언어 방식과 C++ string의 차이
| 기능 | C 언어 | c++ string |
| 문자열 연결 | strcat() | + 또는 += 연산자 |
| 문자열 비교 | strmap() | ==, <, > 연산자 |
| 길이 확인 | strlen() | size() 또는 length() |
| 부분 문자열 추출 | 수동 | substr() |
| 문자, 문자열 찾기 | 수동 | find() |
#include <iostream>
#include <string>
int main()
{
std::string str;
// 문자열에 문자를 추가
str.append("A");
str += "A";
// 문자열의 인덱스 접근
const char ch = str.at(0);
// 지정한 위치 부터 길이 만큼 string 반환
const std::string sub = str.substr(0, 2);
// 문자열이 비어있는지 확인
const bool isEmpty = str.empty();
// 문자열을 비교하고 그 결과에 따른 정수값 반환
// 0 == 같다
// 0 < str 인자보다 str이 크다
// 0 > str 인자보다 str이 작다
std::string tempStr = "AA";
const int reuslt = str.compare(tempStr);
// 시작 위치에서 2번째 인자 만큼의 문자열을 3번째 인자로 대체
str.replace(0, 2, "BB");
// iterator 방식의 replace
std::string::iterator strIter = str.begin();
str.replace(strIter, strIter + 2, "CC");
// 문자열에 해당 문자열이 있는지 확인 후 있으면 그 인덱스 위치 반환
// 없을 경우 std::string::npos 반환
const size_t index = str.find("AA");
// iterator가 가르키는 위치의 문자를 제거
str.erase(str.begin());
// 문자열을 전부 제거 "" 빈 문자열 상태가 됨
str.clear();
return 0;
}