String을 마음대로 쓸 수 있는 파이썬이나 비교적 자유로운 자바에 비해 C에서의 String은 복잡하기 짝이없다. C에서는 char array로 받아야하고 마지막에 null을 추가해서 끝을 표기해야한다.
CPP에서는 직접 MyString 클래스를 만들어서 쓸 수 있으나, 실제로 이러한 방식은 속도 및 사용불편함의 문제가 있다고 한다. 이에 표준 문자열 string 클래스를 사용한다. 이를 이용한 상속을 공부하기전에, 먼저 표준문자열 std::string에 대해 알아보겠다.
basic_string 클래스 템플릿은, char과 같은 문자의 나열을 저장하고 수정하는 작업을 한다.
이를 활용한것이 string 이고 이를 include하여 사용하면 python 쓰듯이 쓸 수 있는것이다.
물론 좀 더 구체적인 내용이 있다.
# include <stinrg>
string str = "Like Pyhton~";
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.replace(idx, len, src) 는 문자열의 특정 인덱스부터 특정 길이까지 str2로 변경한다는 뜻
부등호 >, <, == 을 통한 비교 가능
이글(eagle)을 참고하였다