• 締切済み

string型のフォーマット書式指定の文字列

char s[20]; sprintf(s, "%c%c%c", 0x40, 0x41, 0x00); と同じことを string型を使って書式フォーマットしたいのですが string ss; からどうすれば、上のようなことができるのでしょうか?

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

C++11なら... ss = { 0x40, 0x41 }; でよいのでは?

回答No.2

#include <iostream> #include <sstream> #include <string> using namespace std; int main() { ostringstream stream; stream << static_cast<char>(0x40) << static_cast<char>(0x41); string ss = stream.str(); cout << '[' << ss << ']' << endl; }

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

char s[20]; sprintf(s, "%c%c%c", 0x40, 0x41, 0x00); string ss(s); 「ちょっと待ておい!」と怒られるかもしれませんが、数値等を形式指定して文字列化するにはこの方法が一番手軽です。 あるいは、Boostを導入できるならば、 #include <boost/format.hpp> string ss = (boost::format("%c%c%c") % 0x40 % 0x41 % 0x00).str(); と書くことでできます。

関連するQ&A