본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

MFC C++. std::string ,std::wstring, CString , CT2CA, CA2CT,

by i.got.it 2020. 3. 22.

 

코드 작업시 문자열 다루는 것 참... 지저분함의 극치다. 

 

- 본인 코드 작업에서는 문자열 정의 자료형 인코딩 체계 일관성을 유지 할 수 있지만, 다른 사람이 만든 라이브러리, 프로그램과 통신하면서 인자로 문자열이 있는 경우 항상 문자열 변환부분 작업해줘야 하는 경우 많고 오작동 하는 대표적인 지점.  

 

똥은 피해 갸야지 뭐.. 이미 싸질러 놓은 거 다시 집어넣을 수도 없고...  

 

사족 : 문자열 표현 체계 , 언어 , 파일 저장 규격 ,  단위 ... 이런 류는 절대 단일화 일치 절대 불가능 하다. 국제 표준 같은 것도 무의미 하고 본인 관습은 절대 못버리는 호모 사피엔스 종족 특성 인가봄. 

 

std::string my_str;
std::wstring my_wstr;
CString my_cst; 
wchar_t * my_wchar;


// wstring 을 string 으로. 
my_str.assign(my_wstr.begin(),my_wstr.end()); 

// string 을 wstring 으로. 
my_wstr.assign(my_str.begin(),my_str.end()); 

// string 을 CString 으로. 
my_cst = CString::CStringT(CA2CT(my_str.c_str()));

// CString 을 string 으로. 
my_str = std::string(CT2CA(my_cst));

// wstring 을 CString 으로. 
my_cst = CString::CStringT(my_wstr.c_str());


// wstring 을 wchar_t * 
my_wchar = my_wstr.c_str();

// wchart_t * 를 wstring 
std::wstring my_wstring(my_wchar); // wstring 변수 생성하면서 wchar_t * 를 인자로.


// wchart_t * 를 CString
my_cst.Format(_T("%s"),my_wchar);


// string 을 const char * , 즉 수정 불가능한 상수형 const char*
const char* my_char_const = my_str.c_str(); 

// string 을 char * , 수정가능한 char *. 동적생성해야함. 
char * my_char = new char[my_str.size()+1]; // my_char 사용후 필요없어진 시점에 delete[] my_char 할것.
std::copy(my_str.begin(), my_str.end(),my_char);
my_char[my_str.size()]='\0';

 

 

std::wstring 

 

 

wstring - C++ Reference

 

www.cplusplus.com

 

 

 

std::string -> 숫자형 

std::string str_my = "100"; 

std::stoi(str_my); // int 형으로. 

std::stod(str_my); // double 형으로 


 

 

숫자형 -> std::string 

int i_my = 23;
double d_my = 23.0; 

std::to_string(i_my); 

std::to_string(d_my); 

 

 

 

 

 

 


첫 등록 : 2020.03.22

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2506

 


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5