|
||
解説: C++Builder で文字列を操作する場合、AnsiString クラスを使います。AnsiString には、便利な関数がたくさん用意されています。 その中から今回は、任意の文字列の開始位置を調べる AnsiPos 関数を使ってみます。プログラミングしていると、文字列を加工する場面が頻繁にでてきます。この機会に関数をまとめて覚えておくのもいいかもしれません。 使用例: 以下は、Edit に入力された文字列をドットで分割する例です。 Edit1 に入力されたドット付き文字列から、最初のドットまでの文字列を抽出して、Edit2 に表示しています。 コンポーネントは、Edit を二つと Button をひとつ適当に配置してください。 アプリケーションを起動して、Edit1 にドット付き文字列を入力してください("dsp40.ck.co.jp" を例として代入しています)。 Button1 の OnClick では、Edit1 に入力された文字列から最初のドットの位置を調べています。その結果から、最初のドットまでの文字列("dsp40")を Edit2 に表示してしています。 他の関数を使って、Edit1 に入力された文字列をいろいろに加工してみてください。 //------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //"dsp40.ck.co.jp" を代入 Edit1->Text = "dsp40.ck.co.jp"; } //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //入力文字列を変数に代入 AnsiString str = Edit1->Text; //最初のドットまでの文字列を Edit2 に代入 Edit2->Text = str.SubString(1, str.AnsiPos('.') - 1); //"dsp40" } //------------------------------------------------------------------- |