U E D R , A S I H C RSS

STL/string (rev. 1.2)

STL/string

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. Tips

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;
}


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:58
Processing time 0.0570 sec