Algorithm/C++ STL

<string> STL 정리

supremo7 2020. 12. 17. 00:27

- vector와 매우 유사하다.

- C언어의 char*, char[] 문자열과 달리, 문자열끝에 '\0' 없다.

- +로 string끼리 합칠 수 있다.

- string의 원소 하나하나는 char이다.

 

str[i] : str의 i번째 원소를 참조

 

str.push_back(x) : str의 끝에 x를 추가

str.insert(p,x) : str의 p번째 위치에 x를 삽입

 

str.pop_back() : 마지막 원소를 삭제//반환값 없다!!

str.erase(p) : str의 p(주소)위치 원소를 삭제

str.erase(b,e) : str의 [b,e)구간 원소를 삭제

 

str.front() : 문자열의 첫번째 원소 반환

str.back() : 문자열의 마지막 원소 반환

str.begin() : 문자열의 첫번째 원소를 가리키는 iterator

str.end(): 문자열의 마지막 원소 다음을 가리키는 iterator (마지막 원소 아님!!)

str.size() 또는 str.length() : 문자열의 길이

str.empty() : str이 비어있으면(size,length가 0) true반환

 

str.substr(index,len): str의 index부터 len길이만큼 반환한다. len전달안하면 끝까지 반환//실수전달하면 내림한다

str.replace(index,len,str2): str의 index부터 len길이만큼을 str2로 대체한다.

str.compare(str2) : 두 문자열이 같으면 0반환

str.find(str2) : str에 str2가 존재한다면 존재하는 부분의 첫번째 인덱스를 반환, 없으면 string::npos반환

 

string str = to_string(n); // int, float, double을 string으로 변환

sort(str.begin(), str.end(), greater<char>()); // string안에서 대소비교해서 정렬한다.

 

stoi(str); //string to int

stod(str); //string to double

stoll(str); // string to long long

 

cf. 파이썬은 문자열 전체에 대해서 check할 수 있지만 C++은 문자하나씩 check해야 한다.

isdigit(str[i]) : 숫자이면 true반환

isalpha(str[i]) : 알파벳이면 true반환

isalnum(str[i]) : 숫자 또는 알파벳이면 true반환

isspace(str[i]) : 공백이면 true반환

 

str[i] = toupper(str[i])// 대문자로 변경

str[i] = tolower(str[i])// 소문자로 변경

 

 

참고: blockdmask.tistory.com/338

 

[C++] string 클래스, 문자열에 대해서 (총정리)

안녕하세요 BlockDMask 입니다. 오늘은 C++의 std::string 클래스(문자열)에 대해서 세세 하게 알아볼것 입니다. 예전 글을 보다가 제가 작성한 이 문서를 보게 되었는데요, 너무 내용이 빈약하다고

blockdmask.tistory.com

modoocode.com/233

 

C++ 레퍼런스 - string 라이브러리

 

modoocode.com