본문 바로가기

Programming/Algorithm (C++)

[프로그래머스 1단계] c++:: string 클래스의 substr()

programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    int i=0;
    int m;
    
    while(s[i])
        i++;
    m=i/2-1;
    if (i%2==1)
        answer=s[i/2];
 
    else {
        for(int j=0; j<2; j++){
            answer=s.substr(i/2-1, 2);
         
        }
    }
    return answer;
}

substr

basic_string substr(size_type pos = 0, size_type count = npos) const;

문자열의 일부를 리턴한다...

 

문자열의 pos 번째 문자 부터 count 길이 만큼의 문자열을 리턴한다. 만약에, 인자로 전달된 부분 문자열의 길이가 문자열 보다 길다면, 그 이상을 반환하지 않고 문자열의 끝 까지만 리턴한다.

또한, count  npos 를 전달한다면, 자동으로 pos 부터 원래 문자열의 끝 까지 리턴한다.

 

인자

  • pos : 첫번째 문자의 위치 (원래 문자열에서)

  • count : 부분 문자열의 길이

리턴값

원래 문자열에서 [pos, pos + count) 까지의 문자열을 반환한다.

예외

만일 pos 가 원래 문자열의 길이보다 길다면 std::out_of_range 예외를 발생시킨다.

시간 복잡도

요청한 부분 문자열의 길이 (count) 에 비례한다.

 

modoocode.com/235

 

C++ 레퍼런스 - string 의 substr 함수

 

modoocode.com