코드 작업시 문자열 다루는 것 참... 지저분함의 극치다.
- 본인 코드 작업에서는 문자열 정의 자료형 인코딩 체계 일관성을 유지 할 수 있지만, 다른 사람이 만든 라이브러리, 프로그램과 통신하면서 인자로 문자열이 있는 경우 항상 문자열 변환부분 작업해줘야 하는 경우 많고 오작동 하는 대표적인 지점.
똥은 피해 갸야지 뭐.. 이미 싸질러 놓은 거 다시 집어넣을 수도 없고...
사족 : 문자열 표현 체계 , 언어 , 파일 저장 규격 , 단위 ... 이런 류는 절대 단일화 일치 절대 불가능 하다. 국제 표준 같은 것도 무의미 하고 본인 관습은 절대 못버리는 호모 사피엔스 종족 특성 인가봄.
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
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
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
std::time_t tm gmtime localtime mktime asctime (0) | 2020.03.29 |
---|---|
Json 문자열에서 키의 값 추출 (0) | 2020.03.22 |
gettimeofday. timeval . 윈도우 에서 구현하기 (0) | 2020.03.20 |
C 에서 파이썬 사용하기 (0) | 2020.03.20 |
C++ REST SDK (코드명 Casablanca) 개요. (0) | 2020.03.10 |
댓글