VC(MFC)のCStringやCArray,ClistなどのCXxxクラスは機能が充実していて使いやすいです。
しかし、linuxに移植する場合などでSTLのstd::stringやstd::vector,std::list等に置き換える場合にメソッド名が違っていてすんなり移植できません。
※もちろん移植を前提にしていればMFCが提供するクラスは極力使わないのがベストですが、単純にそうもいかないこともあると思います。
(クラスは置換すれば比較的簡単に済みますが)メソッドは戻り値や引数といったインターフェースの違いに注意しつつ、適切に変更しなければいけません。
CStringのメソッドの対応関係を何度もネットで調べるうちに自分でまとめておこうと思い対応表を作りました。
せっかくなのであげておきたいと思います。
機能 | CString | std::string | コメント |
---|---|---|---|
文字列を空にする | Empty | clear | Emptyはメモリの解放が行われるがclearはメモリの解放は行わない |
文字列中から指定した文字を検索 | Find | find | findは見つからない場合npos(-1)を返す |
空文字かどうか判定する | IsEmpty | empty | - |
文字列のバイト数を取得する | GetLength | length | - |
大文字化 | MakeUpper | 該当なし | taransform( str.begin(), str.end(), str.begin(), toupper)で対応する |
小文字化 | MakeUpper | 該当なし | taransform( str.begin(), str.end(), str.begin(), tolower)で対応する |
文字へのインデックスアクセス | GetAt | at | - |
■参考にさせて頂いたサイト
http://www.cplusplus.com/reference/string/
sarudeki.jp