bionote.net

[C++] string을 char*로 변환하기


string 타입은 문자열을 처리하기에 굉장히 편하도록 고안되어 있다. 하지만 예전에 개발된 시스템이나 다른 사람이 만들어놓은 라이브러리를 사용하다보면 char* 타입으로 변환해서 사용해야하는 경우가 종종 있다.
기본적으로 string 클래스는 다음과 같은 함수를 이용해서 타입변환을 할 수 있다. [니콜라이 M. 조슈티스, C++ Standard Library 튜토리얼 레퍼런스, 548-550]
data()
const char* 타입으로 변환된다. (끝에 '\0'이 덧붙여지지 않음)
c_str()
C-string 타입으로 변환된다. (끝에 '\0'이 덧붙여지는 const char*)
copy()
인수로 제공된 char*에 내용을 복사한다. (끝에 '\0'이 덧붙여지지 않음)

만약 string을 끝에 '\0'가 덧붙여진 char*로 변환하고 싶다면 다음의 방법을 사용하면 된다.
string s("abcdef");
char buf[10];
strcpy(buf, s.c_str());

또는 다음과 같이 할 수 있다.
string s("abcdef");
char buf[10];
int end = (int)s.copy(buf, 10);
buf[end] = '\0';
2006/01/05 03:08 2006/01/05 03:08
top

TRACKBACK ADDRESS :: http://bionote.net/tt/blna999/trackback/66

Leave a comment..