c++에서 string의 사용은 매우 편리하고 강력한것같습니다. (C언어와 비교해보면.)


제가 알고리즘 문제들을 풀면서 지금껏 사용해본 string 함수의 유용한 기능들을 적어보았습니다. 

설명으로는 이해가 힘드니 소스코드를 보면 쉽게 이해가 갈 겁니다.


string s;


공백없는 문자열입력:cin>>s;


공백을 포함한 문자열입력: getline(cin,s);


substr함수: 문자열의 부분 문자열을 구할 때 사용, 0번째 요소부터 시작(소스코드로 사용법 100%익히기!! 익혀두면 짱좋음)

s.substr(x)= x번째 index값부터 끝까지 출력

s.substr(x,y)=x번째 index값을 포함해서 y개의 문자출력

주의: 20행은 불가능한값으로, 런타임오류발생!


find 함수: 문자열에서 특정 부분문자열을 찾을 때 사용(검색한 부분문자열의 첫 index번호 반환)


reverse함수: 문자열을 뒤집고 싶을 때 


string::npos : 특정문자열의 존재여부를 알고싶을 때 사용!!  

매우 큰 값으로, unsigned integer의 값으로 약 46억xxxx로 나옴. 


매우중요: 특정 문자열 을 때 참 반환(1), 을 때 거짓반환(0) 





소스코드로 한방에 이해하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    //문자열 공백포함입력: getline함수
    cout << "문자열입력하세요.";
    //abc def 입력
    getline(cin, s);
    //전체 문자열 출력
    cout << s.substr() << endl;
    //전체문자열 출력, 12행=14행
    cout << s.substr(0<< endl;
    //1번째 요소부터 끝까지출력
    cout << s.substr(1<< endl;
    //2번째 요소부터 끝까지출력
    cout << s.substr(2<< endl;
    //불가능한 값, 런타임오류!!!!
    //cout << s.substr(9) << endl;
 
    //0번째 요소를 포함해 0개의 문자출력=공백
    cout << s.substr(00<< endl;
    //1번째 요소를 포함해 1개의 문자출력
    cout << s.substr(11<< endl;
    //2번째 요소를 포함해 3개의 문자출력
    cout << s.substr(23<< endl;
    //de검색, 있을 때 d의 index번호 반환
    cout << s.find("de"<< endl;
    //xy검색, 없으므로 unsigned integer값 반환
    cout << s.find("xy"<< endl;
    //실제 string::npos의값 출력=매우큰값
    cout << string::npos << endl;
    //특정문자열이 없을 때 참 값(1) 반환
    cout << (s.find("xy"== string::npos) << endl;
    //특정문자열이 있을 때 거짓값(0) 반환
    cout << (s.find("ab"== string::npos) << endl;
    //문자열 뒤집기
    reverse(s.begin(), s.end());
    cout << s << endl;
}
cs


결과





+ Recent posts