http://studyhallweb.com/
プログラム学習室
[Home][C++言語]Borland C++ Bulder

C++ Bulder 文字列

■AnsiString

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#pragma hdrstop

using namespace std;
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
  AnsiString sTest = "1234567";
    cout << sTest.c_str() << endl;
    cout << sTest.SubString(1,4).c_str() << endl;  // "1234"が表示される
    cout << sTest.Length() << endl;                // 7が表示される

    char sInput[80];
    cout << "Enterで終了します\n";
    cin.getline(sInput,80);

  return 0;
}
//---------------------------------------------------------------------------

■文字列の一部抽出

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <StrUtils.hpp>       // これが必要
#pragma hdrstop

using namespace std;
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
    AnsiString sTest = "123全角文字";

    // 文字列の一部抽出
    cout << "AnsiString = " << sTest.c_str() << endl;
    cout << LeftStr(sTest, 4).c_str() << endl;      // "123全"が表示される
    cout << RightStr(sTest, 4).c_str() << endl;     // "全角文字"が表示される
    cout << MidStr(sTest, 3, 2).c_str() << endl;    // "3全"が表示される
    cout << sTest.Length() << endl;                 // 11(バイト単位)
        // LeftStr(), RightStr(), MidStr()は文字数単位
        // Length()はバイト単位なので混在しての使用は注意が必要

	    /* 以下は間違い **************************
	    cout << sTest.LeftStr(4).c_str() << endl;
	    cout << sTest.RightStr(3).c_str() << endl;
	    cout << sTest.MidStr(3,2).c_str() << endl;
	    *****************************************/

    // string を使うと次のようになる(0から始まるバイト単位で指定)
    string sTest2 = "123全角文字";
    cout << "string = " << sTest2 << endl;
    cout << sTest2.substr(0,5) << endl;
    cout << sTest2.substr(3,11) << endl;
    cout << sTest2.substr(2,5) << endl;
    cout << sTest2.length() << endl;

    // 終了処理
    char sInput[80];
    cout << "Enterで終了します\n";
    cin.getline(sInput,80);

    return 0;
}
//---------------------------------------------------------------------------

[Home][C++言語]Borland C++ Bulder