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;
}