1. string ¶
- 잘못쓰면 메모리 누수의 주범이 되는 char* 대신으로 쓸수 있다.
- 그냥 "인수 천재" 라는 문자열을 만들고 싶으면
string a("인수 천재")
이러면 된다.
- 문자열 복사
string b = a
- 문자열 길이는 b.size() 로 알수 있다.
- a문자열의 4-7번째까지의 문자를 문자열로 떼어내기
string name("1234567890"); cout << name<<endl; string c(name.begin() + 3, name.begin() + 7) ; cout << c;
- new - char* 로 만든 문자열은 프로그램 사용후 delete 해줘야 되지만, string은 소멸자에서 알아서 해준다. 생산성 증가!
- STL은 이용 방법의 general 을 추구했기 때문에, 사용법이 비슷하다.
2.1. 문자열 입력 받기 ¶
- string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다.
["Lovelyboy^_^"]는 이걸 망각하고 1시간동안 삽질을 한 경험이 있다. 이럴때는 일단 char input255정도로 큰 배열 잡아 놓은 다음 string으로 변환 시켜준다. 예제를 보자.
#include <iostream> #include <string> using namespace std; int main() { char input[255]; cin.getline(input, 255); cout << string(input); return 0; }
- string을 이용해서 직접 입력 받을려면 이렇게 할수 있다.
#include <iostream> #include <string> using namespace std; int main() { string input; getline(cin, input); cout << input; return 0; }