Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

STL/string

From ZeroWiki
Revision as of 00:29, 27 March 2026 by Maintenance script (talk | contribs) (Repair batch-0003 pages from live compare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 을 추구했기 때문에, 사용법이 비슷하다.

Tips

=== 문자열 입력 받기 ===
  • string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다.
  [Lovely]boy^_^는 이걸 망각하고 1시간동안 삽질을 한 경험이 있다. 이럴때는 일단 char input[255]정도로 큰 배열 잡아 놓은 다음 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;
}

STL