|
심심 님이 쓰신 글 :
: 안녕하세요...
: AnsiString 형으로 선언된 변수가 가지는 문자중 특정 문자를 다른 문자로 치환하려면 어떻게 하면 간단하게 처리할수 있을까요.... 답변 미리 감사드리고요... 즐거운 하루 되세요
지나가는 사람님 답변처럼 맨땅에 삽질하는 것도 좋겠지만,
"어떻게 하면 간단하게 처리할 수 있을까요?"에 대한 답이니까
간단한 방법을 알려드리죠.
지나가는 사람님의 코드만으로는
치환할 문자가 없거나 2개 이상일 때는 변환할 수 없습니다.
이럴때 저는 보통 STL의 replace 알고리듬을 씁니다.
AnsiString의 c_str()을 써서 char*를 타입으로 변환한 후
STL string으로 변환합니다.
이 string에 replace() 알고리듬을 적용하여 치환한 후
다시 AnsiString으로 변환하면 됩니다.
다음은
Edit1에 있는 텍스트에 있는 모든 'R'을 'S'로 변환하는 예제입니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
string s(Edit1->Text.c_str());
replace(s.begin(), s.end(), 'R', 'S');
Edit1->Text = s.c_str();
}
//---------------------------------------------------------------------------
|