reactos/rosapps/sysutils/utils/sdkparse/binary2cstr.cpp

49 lines
728 B
C++
Raw Normal View History

// binary2cstr.cpp
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif//_MSC_VER
#include "binary2cstr.h"
using std::string;
string binary2cstr ( const string& src )
{
string dst;
for ( int i = 0; i < src.size(); i++ )
{
char c = src[i];
switch ( c )
{
case '\n':
dst += "\\n";
break;
case '\r':
dst += "\\r";
break;
case '\t':
dst += "\\t";
break;
case '\v':
dst += "\\v";
break;
case '\"':
dst += "\x22";
break;
default:
if ( isprint ( c ) )
dst += c;
else
{
dst += "\\x";
char tmp[16];
_snprintf ( tmp, sizeof(tmp)-1, "%02X", (unsigned)(unsigned char)c );
tmp[sizeof(tmp)-1] = '\0';
dst += tmp;
}
break;
}
}
return dst;
}