C++将char数组转换成字符串的方法

C++求一个将char数组转换成字符串的方法
例如,

char buf[] = {0xFF,0xB4};
转换得到:
        string str = "FFB4";
求大侠指点!!!

------解决方案--------------------

#include <stdio.h>


int main(int argc, char** argv)
{
char buf[] = {0xFF,0xB4};
char ret[128];
int offset = 0;
for (int i = 0; i < sizeof (buf); i++)
{
offset += sprintf(ret + offset, "%X", (unsigned char)buf[i]);
}
fprintf(stdout, ret);
getchar();
return 0;
}


------解决方案--------------------

#include <stdio.h>


int main(int argc, char** argv)
{
char buf[] = {0xFF,0xB4,0x03};
char ret[128];
int offset = 0;
for (int i = 0; i < sizeof (buf); i++)
{
offset += sprintf(ret + offset, "%02X", (unsigned char)buf[i]);
}
fprintf(stdout, ret);
getchar();
return 0;
}



------解决方案--------------------
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;

int main()
{
char buf[] = {0xFF, 0xB4, 0x0c};
ostringstream oss;
oss << setiosflags(ios::uppercase) << hex; //大写16进制
oss.fill('0'); //不满位数填充0
for (int i = 0; i < sizeof buf; i++)
{
unsigned char c = buf[i];
oss << setw(2) << (int)c; 
}
string result = oss.str();
cout << result;
return 0;
}