C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49379] Re:문자열 Delimiter로 분리하고 싶어요!!
강재호.만해 [greenuri] 3053 읽음    2007-05-26 11:23
김영석 님이 쓰신 글 :
: String str = "ssss^sdfgfg^aaaaa";
:
:
: 문자열이 있으면 ^를 기준으로
: ssss
: sdfgfg
: aaaaa
:
: 이렇게 3개의 문자열을 얻고 싶습니다.
: VCL함수가 있을듯한데..
: 초보라 못찾겠네요.
:
: 읽어주셔서 감사합니다

제가 지금 쓰고 있는 스트링유틸 헤더 파일에 있는 함수를 공개해 드립니다.

다 비슷 비슷한데요, stl을 이용해서 구현한거랑,

C언어때 써먹었던 방법도 있습니다.

참고로만 하세요 ^^

#ifndef STRUTILITY_H
#define STRUTILITY_H
//---------------------------------------------------------------------------
#include <vcl.h>
#include <vector>
#include <string>
using namespace std;
//---------------------------------------------------------------------------
void StringSplit(AnsiString str, char delim, TStringList *& stl_Result)
{
  AnsiString a_Temp;

  stl_Result->Clear();
  char * ptr = str.c_str();
  while ( *ptr != NULL )
    {
      if ( *ptr != delim )
        a_Temp += *ptr;
      if ( *ptr == delim )
        {
          stl_Result->Add(a_Temp);
          a_Temp = "";
        }
      ptr++;
    }
  stl_Result->Add(a_Temp);
}
//---------------------------------------------------------------------------
void StringSplit(string str, string delim, std::vector<string> results)
{
  int cutAt;
  while( (cutAt = str.find_first_of(delim)) != str.npos )
    {
      if(cutAt > 0)
        {
          results.push_back(str.substr(0,cutAt));
        }
      str = str.substr(cutAt+1);
    }
  if(str.length() > 0)
    {
      results.push_back(str);
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall GetParsingData(char szParser, AnsiString &strSource)
{
  AnsiString strReturn = "";
  int iPos = strSource.Pos(szParser);
  if(iPos > 0)
    {
      strReturn = strSource.SubString(1, iPos-1);
      strSource = strSource.SubString(iPos+1, strSource.Length());
    }
  else //마지막 문자로 처리...
    {
      strReturn = strSource;
      strSource = "";
    }

  return strReturn;
}
//---------------------------------------------------------------------------
#endif

+ -

관련 글 리스트
49373 문자열 Delimiter로 분리하고 싶어요!! 김영석 1115 2007/05/25
49379     Re:문자열 Delimiter로 분리하고 싶어요!! 강재호.만해 3053 2007/05/26
49378     Re:문자열 Delimiter로 분리하고 싶어요!! 장성호 2277 2007/05/26
49377     Re:문자열 Delimiter로 분리하고 싶어요!! 아루스 1967 2007/05/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.