string型へのchar型文字列代入

#include 
using namespace std;
int main() {
	char mosa[4];
	mosa[0]='a';
	mosa[1]='b';
	mosa[2]='';
	mosa[3]='c';
	string hoge;
	cout.write(mosa,4); // バイナリ出力
	cout << endl;
	hoge = mosa; // char文字列は代入するだけで、ヌル文字直前までコピーされる。
	cout << hoge.size() << endl;
	cout << hoge.c_str();
	return 0;
}

出力結果

abc
2
ab

よーするに代入するだけでOKってことですな。
ただ、バイナリデータはこれじゃ無理。
string型にバイナリデータを代入する際は、assign()を使って、サイズを明示的に指定する必要がある。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です