[ MFC ] 文字列を大文字・小文字に変換する ( CString.MakeLower )

Pocket

ここでは、MFC アプリケーションで文字列を大文字に変換したり、小文字に変換する関数の使用サンプルを掲載しています。

スポンサーリンク

文字列を大文字・小文字に変換する

まずは、大文字、または小文字に変換するサンプルコードです。CString の MakeLower ( 小文字変換 ) と MakeUpper ( 大文字変換 ) を使用しています。


// 動作確認用の文字列
CString str = _T("test STRING");

// 大文字に変換する
str.MakeUpper();

// 小文字に変換する
str.MakeUpper();
     

「 リターン値は?変換後の文字列は?最近イイことないんですが? 」 と最初は思いましたが、CString クラスが保持する文字列そのものを大文字・小文字に変換しています。イマイチな感じです。変換処理の中身は次のようになっています。元の文字列を変換したくない場合は、一旦別変数に代入してから、変換処理をする必要がありそうです。

MakeUpper, MakeLower の実装

// 保持する文字列を大文字に変換する
// Convert the string to uppercase
CStringT& MakeUpper()
{
    int nLength = GetLength();
    PXSTR pszBuffer = GetBuffer( nLength );
    StringTraits::StringUppercase( pszBuffer, nLength+1 );
    ReleaseBufferSetLength( nLength );

    return( *this );
}

// 保持する文字列を小文字に変換する
// Convert the string to lowercase
CStringT& MakeLower()
{
    int nLength = GetLength();
    PXSTR pszBuffer = GetBuffer( nLength );
    StringTraits::StringLowercase( pszBuffer, nLength+1 );
    ReleaseBufferSetLength( nLength );

    return( *this );
}
    
スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>