본문 바로가기

프로그래밍/C++

[C++] string 함수

※ 코딩 테스트 용, 까먹지 않게 기록

 

s.back() : 맨 뒤 인자 반환, (char)

s.size() / s.length() : 거의 같다고 생각하면 됨

 

s.resize(size_t n) / s.resize(size_t n, char c) : n 크기로 바꿈, (클 경우 c로 채움)

 

string substr(size_t idx = 0, size_t len = npos) const

  • idx부터 len 길이만큼 자르고 리턴
  • 디폴트 값인 npos = 문자열 길이라고 생각하면 됨 (npos 초기값 = -1 , size_t 는 unsigned int 이므로 언더플로우 발생하여 제일 큰 값으로 세팅되므로) 
string s;
s = "hello";
string s1 = s.substr(2, 2); //"ll"
string s2 = s.substr(); //"hello"

 

string& replace(size_t idx, size_t len, const string& str)

  • idx부터 len 길이까지 범위를 str로 대체
string s1, s2;
s1 = "hello Thank you";
s2 = " world";

s1.replace(4, 1, s2); //"hell world Thank you"

 

int compare(const string& str2) const

  • compare(size_t index, size_t len, const string& str2, //size_t index2, //size_t len2) const
  • str2와 비교하여 같으면 0 반환
  • 다르면 0이 아닌 수 반환 (동일하지 않은 인덱스 값에 따라 음수혹은 양수 반환, str2가 ASCII 값 기준 더 클 경우 음수, 작을 경우 양수)
string s1, s2, s3;
s1 = "hello Thank you";
s2 = "hello Bye"; 
s3 = "hello Tz";

s1.compare(s2); //1 , T > B
s1.compare(s3); //-1, h < z

 

size_t find(const string& str2, size_t pos = 0) const

  • str2와 일치하는 문자열이 있는지 체크
  • 일치하는게 있으면 일치하는 문자열의 첫번째 인덱스 반환
  • 일치하는게 없으면 npos 리턴 (위에서 말했듯이 npos = -1 -> 언더플로우-> 최대 값 리턴)
string s1, s2, s3;
s1 = "hello Thank you";
s2 = "Thank";
s3 = "Thanks";

s1.find(s2); //6
s1.find(s3); //4294967295

 

 

'프로그래밍 > C++' 카테고리의 다른 글

[C++] deque container  (0) 2022.10.27
[C++] vector container  (0) 2022.10.27
Recent Posts
Popular Posts