'문자열'에 해당되는 글 2건

  1. LPTSTR 자료형의 문자열 치환 (1)
  2. 문자열 분할시, 특정 번째 문자열 얻기

LPTSTR 자료형의 문자열 치환

UINT Replace( LPTSTR target, LPCTSTR source, LPCTSTR find, LPCTSTR replace )
{
       UINT i, nCount=0;
       BOOL bFind;
       LPCTSTR ps, pf;
       LPTSTR buf=NULL, pt = target;

       size_t nLenSrc = _tcslen( source );

       buf = new TCHAR[nLenSrc+1];
       if ( buf == NULL )
               return NULL;

       _tcsncpy( buf, source, nLenSrc );
       buf[nLenSrc] = 0;


       for(ps=buf; *ps; ps++)
       {
               if ( find[0] == *ps )
               {
                       bFind = TRUE;
                       for(pf=find+1, i=1; *pf; pf++, i++)
                       {
                               if ( *pf != ps[i] )
                               {
                                       bFind = FALSE;
                                       break;
                               }
                       }

                       // 찾았다!
                       if ( bFind )
                       {
                               for(pf=replace; *pf; pf++)
                                       *(pt++) = *pf;
                               ps += (--i);

                               nCount++;

                               continue;
                       }
               }

               *(pt++) = *ps;
       }

       *pt = 0;

       delete[] buf;

       return nCount;
}

문자열 분할시, 특정 번째 문자열 얻기

제목이 어렵네요.. ㅡㅡ;
소스 보시면 어려운것 없으니 금방 이해 하실겁니다.
좋은 시간 되세요..^^


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//--------------------------------------------------------------------------//
//Fuction        : Splite
//Parameter : LPTSTR lpszDest, LPCTSTR lpcszSorc, TCHAR cSep, int nIndex
//Return        : LPCTSTR
//Note                : lpcszSorc를 cSep로 나누어서 nIndex번째 문자열을 lpszDest에 넣는다.
//--------------------------------------------------------------------------//
LPCTSTR Splite( LPTSTR lpszDest, LPCTSTR lpcszSorc, TCHAR cSep, int nIndex)
{
       int i, j, k, l;
       int count;

       count = (int)strlen(lpcszSorc);
       for (i=j=k=l=0; i<count && l<=nIndex; i++)
       {
               if ( *(lpcszSorc+i) == cSep )
               {
                       k=i;
                       strncpy( lpszDest, lpcszSorc+j, k-j );
                       lpszDest[k-j] = 0;
                       j=k+1;
                       l++;
               }
       }

       return lpszDest;
}