--- /dev/null
+// 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;
+}
\ No newline at end of file