기본 콘텐츠로 건너뛰기

글

라벨이 string인 게시물 표시

문자열 다루기

카페 > 프로그래머들의 세계 | 필더 http://cafe.naver.com/programmers/649 문자열 다루기 STL의 string을 사용 #include <TCHAR.h> #include <string> namespace std { typedef basic_string<TCHAR> tstring; } To be continued... static 함수 및 버퍼 사용 /** * Maps a character string to a wide-character (Unicode) string. * @param[in] lpsz ASCII string * @return UNICODE string */ static WCHAR* ToWChar(LPCSTR* lpsz) { static WCHAR wszBuffer[1024]; _wcsset(wszBuffer, 0); int nWStrLen = /* the number of wide characters written to the buffer */ MultiByteToWideChar( CP_ACP, /* CodePage: ANSI code page */ 0, /* dwFlags: character-type options */ lpsz, /* lpMultiByteStr: string to map */ -1, /* cbMultiByte: number of bytes in string */ wszBuffer, /* lpWideCharStr: wide-character buffer */ 1024); /* cchWideChar: size of...

string object method

1. substring(start , count) => start 지점에서 count만큼의 문자열을 구합니다. !str = '/p' !m = !str.substring(1,1) 여기서 !m은 '/'를 나타냅니다. 2. replace => 문자열 교체 !str = '/p' !str = !str.replace('/' , ';') !str은 ';p'가 됩니다.

std string을 이용한 uppercase

어리버리 | 돌이 http://blog.naver.com/alexnet/40019562468 stl을 쓰다보니, 간단하게 upcase, locase를 쓰길를 희망하는데, 마땅한게 없다...--;; 이걸 응용해서 다른 것들도 만들어서 쓰면 될 것 같다. std::string upcase(const std::string& s) { std::string s2(s); for(unsigned int ii = 0; ii < s2.length(); ii++) s2[ii] = toupper(s2[ii]); return s2; } // Allows multiple filters separated by ';' bool testCall(string file, string _filter) { std::string strOrgName(upcase(pszOrgName)); std::string strCompare(upcase(g_filelist[i])); if(strCompare.find(strOrgName) != std::string::npos) { ::OutputDebugString("발견"); } } 이것 보다 간단한 방법이 하나 있다고 해서 사용한 적이 있는데, 눈으로 봤을때는 strlwr()을 사용하는 점이 다를 뿐, 이상이 없는 것 처럼 보였다... 한참 지나고 나서 알게 된 사실은 이건 stl에서 권장하는 방법이 아니었다... 왜냐하면, strlwr은 C/C++ 표준함수도 아닐뿐더러... 원본데이터를 손상시키는 Inplace 변환 방법이기 때문이다. (참고: http://kin.naver.com/db/detail.php?d1id=1&dir_id=10104&eid=SrteUU3y93FnHnKrnI5NjX7FhSvZO33P  ) std::s...

문자열(스트링) 전격 분석 2부 2강(끝

울트라매니아! | 울트라맨 http://blog.naver.com/alshrl999/20020402126 백택 ( bektekk@yahoo.co.kr ) 홈페이지 : http://bektekk.wo.to 문자열(스트링) 전격 분석 2부 2강(끝) 이제 실제 클래스들을 다룹니다. 사실 원문에는 VARIANT타입과 VC7 CLR 환경에서의 스트링에 관련된 부분까지 포함하고 있으나, 제가 CLR에 대해서는 문외한인 관계로 생략했고, VARIANT부분은 특별히 의미가 있어 보이지 않아 생략했음을 알려드립니다. 본 강좌는 코드 프로젝트에 제가 좋아하는 프로그래머인 Michael Dunn의 강좌 The Complete Guide to C++ Strings, Part I 과 II 를 번역한 글입니다. 최대한 의역을 하려고 노력했지만, 이런쪽의 경험이 부족하다 보니 많이 모자란 강좌가 되겠지만, 많은 도움이 되셨으면 합니다. 기타 문의 사항이나 질문은 쪽지나 메일을 이용해 주셨으면 합니다. 본강좌는 제 홈페이지(위의 링크)를 통해서도 보실수 있습니다. 스트링 랩퍼 클래스들 지금까지 여러가지의 스트링 타입에 대해 설명했고, 이제 스트링 랩퍼 클래스들에 대해 설명하겠다. 각각 어떻게 생성을 하고 어떻게 C스타일 스트링으로 변환시킬수 있는지 설명하겠다. 왜냐하면 C스타일 스트링 포인터는 API함수를 호출하거나 다른 랩퍼클래스들을 생성하는데 필요하기 때문이다. 나는 그외의 함수들 예를 들자면 정렬, 비교 등의 기능들에 대해서는 생략하도록 하겠다. 다시한번 강조하지만, 확실하지 않다면 절대로 강제 형변환을 하지 않도록 하자. CRT에서 제공하는 클래스들 _bstr_t _bstr_t 클래스는 아주 잘 만들진 BSTR 랩퍼 클래스다. 그리고 BSTR의 내부구현이나 기타 등등의 문제를 랩핑 했다. 이 클래스는 여러가지 연산자를 재정의 했을 뿐만 아니라, 사용자의 편의...