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(0, 0) << endl; //1번째 요소를 포함해 1개의 문자출력 cout << s.substr(1, 1) << endl; //2번째 요소를 포함해 3개의 문자출력 cout << s.substr(2, 3) << 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 |
결과