CString(CAtlstring)을 사용하면 기본적을 지원하는 기능이지만
stl의 string 을 사용하다보면 불편한점이 한둘이 아니다..
가장먼저 CString
그런데 멀티 플렛폼을 지향하지도 않고
계속해서 윈도우 운영체제에서만 돌아가는 프로그램만을 짤텐데도
불편함을 감수하고 자꾸만 String만 사용하는건 뭐지 -_-;
stl의 string 을 사용하다보면 불편한점이 한둘이 아니다..
가장먼저 CString
#include <atlstr.h>//헤더
#include <iostream>//헤더
/*
#ifdef _UNICODE //유니코드일 경우
typedef CAtlStringW CAtlString;
#else
typedef CAtlStringA CAtlstring;
#end
typedef CAtlString CString;
*/
void main()
{
CString szTest;
szTest.format(_T("%d,%s"),10,_T("test"));
szTest.MakeUpper(); //대문자로 변환!
szTest.MakeLower(); //소문자로 변환!
int pos = 0;
CString token;
while((token = szTest.Tokenize(_T(","),pos)) !=_T("")) //문자열 자르기. 구분자 ","
std::cout << token << std::endl;
}
대부분의 문자열 처리를 CString 에서 다 할수 있다...그런데 멀티 플렛폼을 지향하지도 않고
계속해서 윈도우 운영체제에서만 돌아가는 프로그램만을 짤텐데도
불편함을 감수하고 자꾸만 String만 사용하는건 뭐지 -_-;
#include <iostream>//헤더
#include <string>
#include <boost/algorithm/string.hpp>
#include <boost/format.hpp>
#include <boost/tokenizer.hpp>
typedef std::basic_string<TCHAR> tstring; //CString처럼 프로젝트에 따라서 유니코드 멀티바이트가 되도록..
typedef boost::basic_format<TCHAR> tformat; // boost::format와 boost::wformat를 문자셋에 맞게 쓰기위해..
typedef boost::tokenizer<boost::char_delimiters_separator<TCHAR>
,tstring::const_iterator,tstring> ttokenizer;
int main()
{
tstring str; //string로 CString::format처럼 사용하기.
str = boost::str(tformat(_T("1234,567,%d,%s"))%10%_T("TEST"));//%로 구분하는거의 주의할것!
boost::algorithm::to_upper(str);//대문자로 변환.
boost::algorithm::to_lower(str);//소문자로 변환.
boost::char_separator sep(_T(","));//토큰시 사용할 구분자
// boost::tokenizer<boost::char_separator<TCHAR>> tok(str ,sep);
// boost::tokenizer<boost::char_separator<TCHAR>>::iterator iter = tok.begin();
ttokenizer tok(str,sep);
ttokenizer::iterator iter = tok.begin()
for(;iter!= tok.end(); iter++)
{
std::cout << *iter << endl;
}
return 0;
}
'C..C++....' 카테고리의 다른 글
| BoostPool 사용하기.. (0) | 2011.08.25 |
|---|---|
| error LNK 2005 xxxx이(가) MSVCPRT(D).lib 혹은 LIBCPMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 (0) | 2011.08.02 |
| 람다(Lambda) 활용하기.! (0) | 2011.06.27 |
| c/c++에서 문자열 인코딩 변환! 유니코드 멀티바이트 UTF-8 쉽게 변환해보자~! (5) | 2011.06.17 |
| error LNK 2005 xxxx이(가) MSVCRT(D).lib 혹은 LIBCMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 (2) | 2011.06.13 |