본문으로 바로가기

[C++/STL] string : find() 와 substr() 함수

category PS/Tip 2019. 8. 1. 18:20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

string변수명.find(<#const basic_string<char> &__str#>)

: 찾고자하는 문자열이 존재하면 처음 나타나는 위치를 리턴함.

: 없으면 string::npos를 반환. 

 

ex)

1
2
3
4
5
6
7
8
9
10
11
12
    string original = "ababacbbacba";
    string want = "bac";
 
    size_t idx = original.find(want);
 
    if(idx == string::npos){
        cout << "NO!" << endl;
    }else{
        cout << idx << endl;
    }
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

결과는 bac가 처음 나타나는 b의 인덱스 3이 출력된다.

 


string  string변수명.substr(size_type pos, size_type count)

: pos 에는 자르고자하는 문자열의 첫 인덱스가 들어감.

: count에는 몇글자를 자를지가 들어감.

: 잘라진 문자열을 반환 (원본 수정 X)

 

ex)

1
2
3
4
5
6
7
    string original = "ababacbbacba";
    string cut = original.substr(34);
    cout << cut << endl;
 
 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

3번 인덱스에서부터 4글자를 출력해야 하므로 결과는 bacb가 출력된다.