文字列を数値に

[戻る]
おうち 2006/06/23(金) 16:23:28
お世話になります。

2003.net MFC ダイアログベースで開発しています。

テキストボックス(エディットコントロール)に8桁の数値(年月日)を入力し、
OKボタンクリックで年月日チェックをしたいと思っています。
そこでアドバイスをいただきたいのですが、
CString型で入力内容を取得したあと
(8桁入力されている事が前提で)文字列を4・2・2へばらばらにし、
数値へ変換するにはどうすればよいのでしょか?

    CString str;
    int year;
    int mouth;
    int day;

    m_edit.GetWindowText(str); //m_editは年月日が入力されている
                                    //テキストボックスのコントロール変数
    
*******ここでばらばらにし、数値へ変換したい*******

    年月日チェックをする

初歩的な質問でお恥ずかしいのですが、よろしくお願い致します。

Blue 2006/06/23(金) 16:32:54
> (8桁入力されている事が前提で)文字列を4・2・2へばらばらにし
_stscanfとか。

if ( _stscanf( str, _T( "%4d%2d%2d" ), &year, &month, &day ) == 3 )
{
     // 年月日チェックをする
}

または、CStringクラスのMidメソッドで文字列で分割してatoiやstrtolで変換とか。


一応参考にしてみてください。
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200605/06050060.txt

おうち 2006/06/23(金) 16:49:20
さっそくのご回答ありがとうごあいます。
参考の方も見て勉強させていただきます。
ありがとうございました。

古いスレッドには追加発言できません。