Tips of VC++ > STL > 文字列クラス<string>
前へ戻る次へ進む


このドキュメントにはサンプルプログラムが含まれています。
ワークスペース
ソースファイル(テキスト)


文字列クラス<string>

CやC++はBasicなどに比べて文字列の扱いが非常にわずらわしいのは周知の事実。 厳密性を重視しているからしかたないのでしょうが。 慣れてくると、これが面白いんですけどね。 MFCのCStringは重そうなので、 自分でSTRLIBなんてものを 作ったことはありますが、普通の人はSTLのstringクラスを使う傾向にあります。

STLにはstringというクラスがあり、これが文字列処理のクラスです。 MFCではCStringと言うクラスがあり、それと同じようなものです。 MSDNの該当箇所はここです。

std::stringを使う上での留意点は以下(というかこれが全て)

  1. ヘッダーはstring
  2. LPCTSTRや、文字列へのポインタを取得するにはdata関数を使う
  3. lengthまたはsize関数で取得される文字数に ヌル文字は含まれない。(両者は同じ)
  4. 文字列の抽出はsubstr、挿入はinsert、eraseなど
  5. +演算子で文字列の結合ができる
  6. 詳しくはMSDNのstring関数basic_string関数を参照
//
// stlstr.cpp
//


#include <windows.h>

#include <string>

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow )
{
	std::string str1("ABCDE");
	std::string str2("12345");

	std::string str3=str1+"+"+str1.substr(1,2)+"+"+str2;

	::MessageBox(NULL,str3.data(),"stlstr",MB_ICONEXCLAMATION);

	return 0;
}

かなり無理のあるサンプルですが、 文字列が使いやすくなることは分かると思います。

Dec.31, 2002