String 생성자

강한친구·2022년 2월 28일

C / CPP

목록 보기
6/19

String

String을 마음대로 쓸 수 있는 파이썬이나 비교적 자유로운 자바에 비해 C에서의 String은 복잡하기 짝이없다. C에서는 char array로 받아야하고 마지막에 null을 추가해서 끝을 표기해야한다.

CPP에서는 직접 MyString 클래스를 만들어서 쓸 수 있으나, 실제로 이러한 방식은 속도 및 사용불편함의 문제가 있다고 한다. 이에 표준 문자열 string 클래스를 사용한다. 이를 이용한 상속을 공부하기전에, 먼저 표준문자열 std::string에 대해 알아보겠다.

basic_string

basic_string 클래스 템플릿은, char과 같은 문자의 나열을 저장하고 수정하는 작업을 한다.
이를 활용한것이 string 이고 이를 include하여 사용하면 python 쓰듯이 쓸 수 있는것이다.

물론 좀 더 구체적인 내용이 있다.

# include <stinrg>
string str = "Like Pyhton~";

string의 몇몇 기능들

  • str[0]을 하면 char 타입의 'L'을 반환해준다. array처럼 접근이 가능하다는 뜻이다.

  • str.front(), str.back()은 맨 앞 혹은 맨 끝 문자를 반환한다.

  • str.size(), str.length()는 길이를 반환한다.

  • to_string()을 이용하면 숫자를 문자열로 바꿀 수 있고,
    int의 경우 stol, double의 경우 sotd, float의 경우 sotf, long의 겨우 stof를 이용하여 변환이 가능하다.

  • str.empty()를 사용하면 비어있는지의 여부를 T/F로 반환한다.

  • swap(str1, str2)를 사용하면 str1, str2를 바꾼다.

  • str.append(str2)를 하면 str1뒤에 str2를 더한다.

  • str.find(src)를 하면 str안에 src의 시작인덱스를 반환한다.

  • str.substr(숫자) 를 하면 str안에서 특정 부분까지 string형 값을 반환해준다 (slicing 기능)

    • str.substr(3)은 3번째 인덱스부터 끝까지, str.substr(3, 2)는 3번째 인덱스부터 2길이만큼 반환
  • str.replace(idx, len, src) 는 문자열의 특정 인덱스부터 특정 길이까지 str2로 변경한다는 뜻

  • 부등호 >, <, == 을 통한 비교 가능

    이글(eagle)을 참고하였다

0개의 댓글