プロが教えるわが家の防犯対策術!

char s[20];
sprintf(s, "%c%c%c", 0x40, 0x41, 0x00);

と同じことを string型を使って書式フォーマットしたいのですが

string ss;
からどうすれば、上のようなことができるのでしょうか?

A 回答 (3件)

C++11なら...



ss = { 0x40, 0x41 };

でよいのでは?
    • good
    • 1

#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;
}
    • good
    • 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();
と書くことでできます。
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A