문자열 string
#include “StdAfx.h”
#include “StringTest.h”
#include <algorithm> //transform 사용
#include <functional> //bind1st
using std::string; // 이렇게 지정해준다.
StringTest::StringTest()
{
log(“StringTest 생성자 호출”);
}
StringTest::~StringTest(void)
{
log(“StringTest 소멸자 호출”);
}
void StringTest::test()
{
log(“============ string class ==========”);
// 생성자
std::string s0; // 비어있는 string
std::string s1(“012345”,3); // 결과: 012
std::string s2(“abcdefg”,0,1); // 결과:a
log(“비어 있는 String=%s, length=%d, isEmpty=%d”,s0.c_str(),s0.length(), s0.empty()); // C-String 형으로 리턴, 문자열 +
log(“문자열로 초기화=%s”,s1.data()); // 문자열 내용 반환
log(“문자열의 index~index 안 데이터로 생성=%s”,s2.c_str());
// 문자열 기본정보
s1.reserve(100); // 메모리 공간 미리 할당
log(“가질수있는 문자 최대 갯수=%d”,s1.max_size());
log(“메모리 재할당 없이 가질수 있는 최대 문자수 =%d”,s1.capacity());
// 문자 추가
s1 = “0123456”;
s2 = “abcdefg”;
s1.append(s2,0,s2.npos); // 결과: 0123456abcdefg , s2의 0~s2.npos 위치의 문자열을 맨뒤에 추가
s1.insert(0,”add”); // 결과: add0123456abcdefg. 문자열을 0번째에 끼어넣기
log(“append=%s”,s1.c_str());
// 문자 복사 copy ( s1 -> s4 로 복사) char* s, size_t n, size_t pos = 0
char s4[100];
int length = s1.copy(s4,s1.length(), 0);
s4[length] = ‘